2013-02-21 60 views
2

我想回到每次迭代的結果將被寫入在一個單獨的文本文件中的循環,但由於某些原因,它似乎並沒有工作。我的代碼是:回到獨立的txt文件中的R

for (i in length(traject)){   
     player <-subset(traject[[i]],subset=(dt==1),) 
     test<-player 
     write.table(test, file=paste(i, "test.txt", sep=" ")) 
     head(test) 
     } 

其中僅返回最後一次迭代中,我該怎麼辦錯了以生產單獨的文本文件中的所有迭代的結果嗎?

額外的信息:循環是針對每個單獨的播放(具有不同的ID)來獲得經由as.ltraj()從adehabitatLT包數據。

(我知道有關於這個論壇類似的問題,但沒有人能幫助我解決這個問題)

回答

4

也許你應該在你的for循環添加1:length(traject)爲:

for (i in 1:length(traject)){ do something } 

你循環只返回一個iteretion(最後一個),因爲你的索引僅僅是length(traject)而應該使用1:length(traject)該指數i從第一個元素一直到最後一個移動,也可以替代1:length(traject)通過seq_len(length(traject))

+1

簡單的和有益的!非常感謝你! – Joeri 2013-02-21 14:02:54

+0

關於這個循環的另一個問題;我將如何能夠從這個循環的每次迭代中返回一個數據幀? – Joeri 2013-02-22 13:54:04

+0

你可以用'assign'功能(不那麼推薦),但它是一個簡單的方法來做到這一點。您可能想查看'?assign'以獲取更多詳細信息。 – 2013-02-22 14:36:03

0

由於@Jilber指出的那樣,你只遍歷一個數字。

僅供參考:如果你想遍歷一個向量或列表中的所有項目,你可以簡單地做

for (i in traject) { 
    #.... 
}