我有一些順序標記的數據幀即FRAME_1 frame_2等。我想訪問它們以順序的方式可能使用一個循環,有意義的訪問動態命名錶
單程我是分配數據幀我要訪問一個對象的名稱,然後將該對象傳遞給一個函數,即
varname<-paste("frame_",1,_sep="")
然後調用我的函數
function(varname)
但是R似乎在字符串varname上調用該函數,而不是與varname具有相同名稱的對象。
有辦法我可以做我想做的嗎?
謝謝。
我有一些順序標記的數據幀即FRAME_1 frame_2等。我想訪問它們以順序的方式可能使用一個循環,有意義的訪問動態命名錶
單程我是分配數據幀我要訪問一個對象的名稱,然後將該對象傳遞給一個函數,即
varname<-paste("frame_",1,_sep="")
然後調用我的函數
function(varname)
但是R似乎在字符串varname上調用該函數,而不是與varname具有相同名稱的對象。
有辦法我可以做我想做的嗎?
謝謝。
我發現可以使用eval的組合分析字符串作爲R指令和解析,所以例如:
function(eval(parse(text=paste0("name_",1))))
在循環:
for(i in 1:length(holder)){
function(eval(parse(text=paste0("frame_",i))))
}
剛發現這個問題/答案,同時尋找類似問題的重複。 'eval(parse())'適用於此,但是過度殺傷。 'get()'更簡單,但正如O參議員在評論中所說的使用列表被認爲是最佳做法。 – Gregor 2015-10-28 15:53:38
'MGET(LS( pattern =「frame _ \\ d +」))'也許? – 2014-10-20 14:59:22
你爲什麼不把這些數據幀存儲在列表中? – 2014-10-20 15:01:48
@SeñorO我嘗試過,但索引的額外水平使其他任務更難。 – user124123 2014-10-20 15:04:33