2016-06-30 16 views
0

順序付きベクトルのすべての要素(正の要素のみを含む)間の可能な(正の)相違点をすべて知りたい。forループの結果が予期しない結果になる

これを行うには、forループを使って成長させる別のベクターを作成しました(コード1を参照)。希望の結果 "1 4 6 3 5 2"ではなく "12"になりました。私がコード2(コード1 ...と同じように見える)を適用すると、私は希望の結果を得ることができます。誰もが、以下の2つのコードが同じ結果につながっていない理由を知っていますか?

コード1

a = c() 
b = c(1,2,5,7) 

for (i in (length(b)-1)) { 

    a = unique(c(a,b[(i+1):length(b)] - b[i])) 

} 

コード2

a = c() 
b = c(1,2,5,7) 
i=1 
a = unique(c(a,b[(i+1):length(b)] - b[i])) 
i=2 
a = unique(c(a,b[(i+1):length(b)] - b[i])) 
i=3 
a = unique(c(a,b[(i+1):length(b)] - b[i])) 

私は少し困惑しています...

答えて

1

あなたはそれを知っていればあなたは自分を嫌います。

as.vector(dist(a)) 
+0

は確かに、私は非常に恥ずかしい思います:あなたは

for (i in 1:(length(b)-1)) 

ではなく、これはしてより簡潔に行うことができる

for (i in (length(b)-1)) 
koteletje

2

必要です。ありがとう!
+0

関数Benjaminをありがとう。 – koteletje