2014-10-20 191 views
0

我有一些順序標記的數據幀即FRAME_1 frame_2等。我想訪問它們以順序的方式可能使用一個循環,有意義的訪問動態命名錶

單程我是分配數據幀我要訪問一個對象的名稱,然後將該對象傳遞給一個函數,即

varname<-paste("frame_",1,_sep="") 

然後調用我的函數

function(varname) 

但是R似乎在字符串varname上調用該函數,而不是與varname具有相同名稱的對象。

有辦法我可以做我想做的嗎?

謝謝。

+0

'MGET(LS( pattern =「frame _ \\ d +」))'也許? – 2014-10-20 14:59:22

+1

你爲什麼不把這些數據幀存儲在列表中? – 2014-10-20 15:01:48

+0

@SeñorO我嘗試過,但索引的額外水平使其他任務更難。 – user124123 2014-10-20 15:04:33

回答

1

我發現可以使用eval的組合分析字符串作爲R指令和解析,所以例如:

function(eval(parse(text=paste0("name_",1)))) 

在循環:

for(i in 1:length(holder)){ 
    function(eval(parse(text=paste0("frame_",i)))) 
} 
+0

剛發現這個問題/答案,同時尋找類似問題的重複。 'eval(parse())'適用於此,但是過度殺傷。 'get()'更簡單,但正如O參議員在評論中所說的使用列表被認爲是最佳做法。 – Gregor 2015-10-28 15:53:38