我想在循环中返回每次迭代的结果,以便在单独的文本文件中写入,但由于某种原因,它似乎不起作用。我的代码是:
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()获取数据。
(我知道这个论坛上有类似的问题,但没有人可以帮我解决这个问题)
答案 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) {
#....
}