2016-03-25 36 views
1

我正在創建一個用戶定義的函數,它可以幫助我創建20個以上的數據表。但是,與不使用用戶定義的函數不同,這些數據表不會在全局環境中創建。請參閱下面的示例代碼。是否可以將用戶定義的函數中創建的數據表放到全局環境中?

library(data.table) 
samplefunction <- function(f) { 
    df=as.data.table(list(V1=c('a','a','b','c'),V2=c(1,2,3,4))) 
    df.a=df[V1==f] 
    df.a 
} 
samplefunction('a') 

我只知道功能工程是否提供行df.a輸出在控制檯窗口中data.table,因爲DF和df.a數據表沒有得到全球環境的創建。我將無法以這種方式查看我的數據表。是否有可能在全球環境中創建表格?

回答

1

我認爲,@納特的第二個答案是更好的選擇:

samplefunction <- function(f) { 
    df=as.data.table(list(V1=c('a','a','b','c'),V2=c(1,2,3,4))) 
    df.a=df[V1==f] 

    return(list("df"=df, "df.a"=df.a) 
} 

全球分配可以在全球環境中,這通常是不好的覆蓋對象。隨着功能的修改,您可以按如下方式使用它:

myresults <- samplefunction(input) 
# show df 
myresults[["df"]] 
# show df.a 
myresults[["df.a"]] 
相關問題