2016-10-14 2 views
-1

私の無知を許しますが、なぜ誰かが私にこの結果を得る理由を説明すれば感謝します。以上の繰り返しの正しい表現するもので、また、Rが2回反復されて1:0でnになるのはなぜですか?

> df<-data.frame() 
> nrow(df) 
[1] 0 
> for(n in 1:nrow(df)){ cat("foo")} 
foofoo 

:私は行数を反復処理したいと行数が0の代わりに、それは2回反復しているので、私は結果が空であることを期待しますdata.frame?の行の数?

UPDATE:コメントの

感謝。 私は1:nrow(df)seq_len(nrow(df)) に置き換えました。 1:0は、実際には、これらの要素を反復二つの要素とを含有している:

> 1:0 
[1] 1 0 
+8

この理由から、 '1:nrow(df)'は使用しないでください。代わりに 'seq_len(nrow(df))'を使用してください。 – nicola

+0

@nicolaあなたは答えとして投稿する必要があります。 :) – Therkel

答えて

1

範囲X:Yは、もしXおよびYを含む、あなたのXからYへのベクトルを与えますX> Yの場合、リストは減少しています。あなたのケースでは、1と0の2つの要素を持つ1:0のリストを要求しています。

+0

NROW()を作成し、1次元オブジェクトに遭遇したときにエラーを吐き出さない。 – mkearney

+0

「Y> Xの場合、リストは減少しています」 - 「X> Yなら」 – Therkel

+0

ありがとう@Therkelが修正されました – SlowLearner

関連する問題