2013-04-20 52 views
0

我正在嘗試編寫一個將插入到較大腳本中的函數。該功能的目的是接受任意數量的輸入變量,然後據此畫出他們:用於繪製x個變量的R函數

Plot_funct <- function(FigFolder,var1,var2,var3,...){ 

nargin <- length(as.list(match.call())) -1 

}

這是我從開始,我們在這裏有FigFolder這是哪裏的路徑應該保存這些數字(如.pdf),我定義了指定輸入參數數目的'nargin',然後我計劃循環每個參數(var1,var2等)並相應繪製。我所關心的主要問題是如何設置一個允許任意數量的入口的函數?

+0

根據你需要精確繪圖的情況,'ggplot2'中的facetting可能也很有趣。如果你的情節實際上是相同的(x和y var),但是你有每個時間間隔的情節,或者其他一些分類變量,這非常有效。 – 2013-04-20 09:21:46

+1

感謝您的意見,您的回答非常好。我添加了一個新帖子,其中強調了我在開發此功能時遇到的其他一些限制。我不想掩蓋這個答案,向OP中添加更多的問題。 http://stackoverflow.com/questions/16118855/plotting-routine-for-n-number-of-arguments-in-r – KatyB 2013-04-20 09:45:12

+0

也在鏈接頁面上回答 http://stackoverflow.com/questions/16118855 /繪製例程換正數的論點-在-R/16127025#16127025 – 2013-04-22 13:26:53

回答

2

什麼是很容易的,只是提供這些變量的列表:

plot_funct = function(FigFolder, variable_list, ...) { 
    for(variable in variable_list) { 
     # Make plot here 
    } 
}) 

以上的位R,如:

plot_variable = function(variable, ...) { 
    # Make plot here 
}) 

plot_funct = function(FigFolder, variable_list, ...) { 
    lapply(variable_list, plot_variable, ...) 
}) 

你也可以堅持獨立的變量,並使用...

plot_function = function(..., FigFolder) { 
    variable_list = list(...) 
    # and use any of the two strategies given above, I'll use lapply 
    lapply(variable_list, plot_variable) 
}) 

注意,這是更僞代碼比實際R代碼裏面,但它說明了一般策略。