2

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

 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

2 回答 2

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))

于 2013-02-21T12:56:26.803 回答
0

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

仅供参考:如果您想遍历向量或列表中的所有项目,您可以简单地做

 for (i in traject) {
  #....
 } 
于 2013-02-21T13:57:58.353 回答