我想創建一個函數,使用來自其他數據框的一些變量創建新的數據框。爲此,我需要以某種方式在我自己的函數中打印變量名稱。在我自己的函數中打印變量名稱
變量來自兩個數據幀(asd和tetracam),它們有六個共同的變量,頻段「w530」,「w550」,「w570」,「670」,「w700」和「w800」。所以,我想創建六個數據幀,每個頻段一個。一個接一個我可以這樣寫:
# Band w530
w530<-data.frame(tetracam$filename,tetracam$time,tetracam$type,tetracam$w530,asd$w530)
names(w530)<-c("filename","time","type","tetracam","asd")
w530<-w530[order(w530$time),]
它工作正常,但我想這樣做是爲了運行所有樂隊的功能。我認爲我必須替換上面代碼中的所有w530以獲得動態對象。正如我想到使用一些適用的家庭。所以,我首先創建一個列表與我共同變量的名稱:
bands<-c("w530","w550","w570","670","w700","w800")
然後,我試了幾種方法,例如,使用cat
或sprintf
,將使用從字符串列表,以填補我的功能。但它沒有奏效。其實,我不確定我會用哪個家庭功能。如果有可能在這種情況下使用任何:
my.fun<- function(band){
sprintf("%s<-data.frame(tetracam$filename,tetracam$time,tetracam$type,asd$%s,tetracam$%s)",band,band,band)
sprintf("names(%s)<-c('filename','time','type','asd','tetracam')",band)
sprintf("%s[order(%s$time),]",band,band)
}
任何幫助表示讚賞。
您沒有將這兩個數據幀(即asd和tetracam)傳遞到函數中。嘗試再添加兩個參數兩個函數,並將這兩個參數用作輸入。否則,默認情況下,函數無法訪問環境變量。 – Masoud
請使用'dput'爲您的數據集提供一個可重現的例子。 – Masoud
[爲什麼接受答案?](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。接受答案可以幫助其他有相同問題的人。 – Masoud