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を持つ)各プレーヤーがadehabitatLTパッケージからas.ltraj()を介してデータを取得するためのものです。

(私はこのフォーラムに同様の質問があることを知っていますが、この問題を解決するのに役立つものはありません)

4

2 に答える 2

4

たぶん、次のようにループに追加する必要1:length(traject)があります。for

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

ループは1つの反復(最後の反復)のみを返します。これは、インデックスが最初の要素から最後の要素に移動するためにlength(traject)使用する必要があるためです。次のように置き換えることもできます。1:length(traject)i1:length(traject)seq_len(length(traject))

于 2013-02-21T12:56:26.803 に答える
0

@Jilberが指摘したように、繰り返し処理するのは1つの数値だけです。

参考までに:ベクターまたはリスト内のすべてのアイテムを反復処理する場合は、次のようにすることができます。

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