从R中的循环返回单独的txt文件

时间:2013-02-21 12:54:09

标签: r for-loop

我想在循环中返回每次迭代的结果,以便在单独的文本文件中写入,但由于某种原因,它似乎不起作用。我的代码是:

 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),以通过adehabitatLT包中的as.ltraj()获取数据。

(我知道这个论坛上有类似的问题,但没有人可以帮我解决这个问题)

2 个答案:

答案 0 :(得分:4)

也许您应该在1:length(traject)循环中添加for,如下所示:

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

你的循环只返回一个迭代(最后一个)因为你的索引只是length(traject)而你应该使用1:length(traject)来使索引i从第一个元素移出所有通过最后一个方法,您还可以将1:length(traject)替换为seq_len(length(traject))

答案 1 :(得分:0)

正如@Jilber指出的那样,你只是迭代一个数字。

仅供参考:如果您想迭代矢量或列表中的所有项目,您只需执行

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