1
我正在嘗試使用函數創建包含0行的四個變量數據框。我在這裏有兩個要求。如何使用函數中傳遞的參數動態地命名R函數內的數據集?
1)新創建的數據幀的名稱應爲參數傳遞 2)在數據幀的第二變量的名稱應該是參數傳遞
我試圖用下面的代碼這樣做:
sim<-function(df,df1){
y<-df1
assign(paste(y),data.frame(Var1=numeric(), Var2=numeric(), Var3=numeric(),
Var4=numeric()),envir=.GlobalEnv)
colnames(df)[2]<-paste(y)
return(names(df))
}
sim(test,"test")
colnames(test)
我得到以下輸出:
SIM(測試, 「測試」)
[1] 「VAR1」, 「測試」, 「VAR3」 「VAR4」
colnames(測試)
[1] 「VAR1」 「VAR2」 「VAR3」 「VAR4」
我不明白的是,當R可以理解「測試」列名被修改並且它在運行期間返回修改後的名稱時,數據框的「測試」列名在該函數外仍然保持不變。我將不勝感激任何幫助,使這項工作。
謝謝!
你能詳細描述一下你在大圖中想要達到的目標嗎?使用函數來創建全局環境是可以的,但也許有更好的方法。 –
我試圖動態地命名每次使用函數時創建的數據集。如上所述,我希望創建的全局df採用參數的名稱(在上面的情況下,它的'測試'),我可以使用上面的代碼實現該參數。但第二個條件是將第二個變量重命名爲參數的名稱(在'test'之上的情況下),這是我無法實現的。我在這裏尋找解決方案或解決方法。感謝您的回覆羅馬。 --Murali –