2016-04-03 13 views
1

私は現在、複数のグラフをRの同じPowerpointプレゼンテーションにエクスポートしようとしています。複数のグラフは関数を使って作成されます。 しかし、以下のコードを実行すると、変数ごとに別々のPowerpointが生成されます(Calc_CommissionaとCalcCommission_Percのそれぞれに同じものが必要です)、Age_Banded、InstalmentsRequestedIndおよびNetPrem_Banded。これはggsaveが私が仮定している最後のプロットを見ているからです。 アイデア また、CreateGraph関数は、CalcCommission Percのグラフを生成しています。他が削除されたときCalcCommissionとCalcCommission_Percの両方が独立して動作...グラフを作成する関数を使ってパワーポイントにエクスポート

require(ggplot2) 

require(RDCOMClient) 

require(R2PPT) 

date <- "20160401" 


CalcCommission <- function(Variable,FName,AxisAngle){ 

    Actual_Commission <- tapply(Converted_A$Commission,Converted_A[Variable],mean) 
    Predicted_Commission <- tapply(Final_cut$Commission_Response*Final_cut$Origination.Demand,Final_cut[Variable],sum)/tapply(Final_cut$Origination.Demand,Final_cut[Variable],sum)/100 

Data <- data.frame(x=names(Actual_Commission),Actual_Commission,Predicted_Commission) 
    Commission_Plot <- ggplot(Data,aes(x=seq(length(unique(x))))) + 
    geom_line(aes(y=Actual_Commission, colour = "Actual Commission")) + 
    geom_line(aes(y=Predicted_Commission, colour = "Predicted Commission")) + 
    scale_x_continuous(name = FName, 
         breaks = seq(length(unique(Data$x))), 
         labels = unique(Data$x)) + 
    scale_y_continuous(name = "Commission £") + 
    ggtitle("Commission £") + 
    theme(legend.title=element_blank(),axis.text.x = element_text(angle = AxisAngle, hjust = 1)) 

    mypres <- PPT.Init(method="RDCOMClient") 
    mypres<-PPT.AddTitleSlide(mypres,title="Commission £",subtitle=date) 

    ggsave(my_temp_file<-paste(tempfile(),".wmf",sep=""), plot=Commission_Plot) 
    mypres <- PPT.AddBlankSlide(mypres) 
    mypres <- PPT.AddGraphicstoSlide(mypres,file=my_temp_file) 
    unlink(my_temp_file) 

} 

CalcCommission_Perc <- function(Variable,FName,AxisAngle){ 
    Actual_Commission_Perc <- tapply((Converted_A$Commission/Converted_A$NetPremium)*100,Converted_A[Variable],mean) 

Predicted_Commission_Perc <- (((tapply(Final_cut$Commission_Response*Final_cut$Origination.Demand,Final_cut[Variable],sum)/tapply(Final_cut$Origination.Demand,Final_cut[Variable],sum))/100)/ 
            (tapply(Final_cut$Prem_Net*Final_cut$Origination.Demand,Final_cut[Variable],sum)/tapply(Final_cut$Origination.Demand,Final_cut[Variable],sum)))*100 

Data <- data.frame(x=names(Actual_Commission_Perc),Actual_Commission_Perc,Predicted_Commission_Perc) 

    Commission_Perc_Plot <- ggplot(Data,aes(x=seq(length(unique(x))))) + 
    geom_line(aes(y=Actual_Commission_Perc, colour = "Actual Commission %")) + 
    geom_line(aes(y=Predicted_Commission_Perc, colour = "Predicted Commission %")) + 
    scale_x_continuous(name = FName, 
         breaks = seq(length(unique(Data$x))), 
         labels = unique(Data$x)) + 
    scale_y_continuous(name = "Commission £") + 
    ggtitle("Commission %") + 
    theme(legend.title=element_blank(),axis.text.x = element_text(angle = AxisAngle, hjust = 1)) 

    mypres <- PPT.Init(method="RDCOMClient") 
    mypres<-PPT.AddTitleSlide(mypres,title="Commission %",subtitle=date) 

    ggsave(my_temp_file<-paste(tempfile(),".wmf",sep=""), plot=Commission_Perc_Plot) 
    mypres <- PPT.AddBlankSlide(mypres) 
    mypres <- PPT.AddGraphicstoSlide(mypres,file=my_temp_file) 
    unlink(my_temp_file) 
    } 

CreateGraph <- function(Variable,FName,AxisAngle){ 

    CalcCommission(Variable,FName,AxisAngle) 
    CalcCommission_Perc(Variable,FName,AxisAngle) 
    } 
CreateGraph("Age_Banded","Age",0) 
CreateGraph("InstalmentsRequestedInd","DD Payment",0) 
CreateGraph("NetPrem_Banded","Net Premium",45) 
+1

私はインストールできませんが、devtools :: install_github( 'cran/R2PPT') 'からダウンロードできるのは、Windows専用のパッケージ(およそ4年前)です。これを小さな、再現可能な例にしておけば、彼らを助けるでしょう。 'RDCOMClient'はウィンドウズのみです – rawr

+1

['rvg'](https://cran.rstudio.com/web/packages/rvg/index.html)パッケージを調べたいかもしれません – hrbrmstr

+0

エクスポートしようとする可能性がありますあなたのパワーポイントにリンクされたファイルとしてjpgを挿入してください...これはあなたがRからあなたのグラフィックスを簡単に更新し、あなたがパワーポイント文書に持っている書式やテキストを保持します。これは、あなたが大量のグラフィックスをパワーポイントにエクスポートしている場合には問題になりますが、これは通常そうではないため実行可能です。 –

答えて

2

ここに1つのPPTXファイル内の二つのグラフを保存するための一つの方法です:

library(ReporteRs) 
library(ggplot2) 
library(magrittr) 
pptx() %>% 
    addSlide("Title and Content") %>% 
    addTitle("plot #1") %>% 
    addPlot(function() barplot(1:8, col = 1:8)) %>% 
    addSlide("Title and Content") %>% 
    addTitle("plot #2") %>% 
    addPlot(fun = print, x = qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7))) %>% 
    writeDoc(ppfn <<- tempfile(fileext = ".pptx")) 

ppfnは、そのパスを含むPowerPointファイル名が含まれています。パッケージ文書hereを確認してください。