2015-10-08 102 views
-1

在繪圖函數中,我指的是一個由高級函數生成的對象,即我的繪圖函數嵌套在高級函數中。函數外的訪問對象

的代碼看起來有點像這樣:

minaverage <- seq(1:1440) 

plot_minaverage <- function(minaverage){ 
    for_minaverage_plot.time <- rep(seq(1,1440),2) 
    seq <- seq(start.time*60, length.out = 1440) 
    minaverage_plot_time <- for_minaverage_plot.time[seq] 

    minaverage_plot_df <- data.frame (minaverage_plot_time, minaverage) 

    pp <- ggplot(minaverage_plot_df, aes(x=minaverage_plot_time, y = minaverage))+ 
geom_bar(stat="identity", width = 1, position = position_dodge(width = 0.5))+ 
theme_bw() 
print(pp) 
} 

我的問題是,minverage計算功能之外,當我不使用minaverage <<- minaverage其存儲在工作區,繪圖功能無法訪問。

我怎樣才能訪問minaverage?

+0

由於[「高階函數」](https://en.wikipedia.org/wiki/Higher-order_function)有所不同,所以我編輯了這個問題以避免使用該術語。 –

回答

0

您正在通過參數訪問minaverage,這不是問題。

您的代碼幾乎工作,你只需要添加start.time作爲參數,並且你在倒數第二行有一個錯字:

theme_bw()+ 

取出+,使其工作:

plot_minaverage = function(minaverage, start.time){ 
    for_minaverage_plot.time <- rep(seq(1,1440),2) 
    seq <- seq(start.time*60, length.out = 1440) 
    minaverage_plot_time <- for_minaverage_plot.time[seq] 

    minaverage_plot_df <- data.frame (minaverage_plot_time, minaverage) 

    pp <- ggplot(minaverage_plot_df, aes(x=minaverage_plot_time, y = minaverage))+ 
     geom_bar(stat="identity", width = 1, position = position_dodge(width = 0.5))+ 
     theme_bw() 
    print(pp) 
} 
+0

@ChristineBlume是的,你可以,它就在那裏。我答案中的代碼適用於我。 –

+0

它沒有找到start.time:(... –