1

次のコードを使用します。

a <- seq(1, 10, 1)
b <- seq(2, 20, 2)

のようなものを得るために、それぞれa[i - 1]から減算したいb[i]i

c <- NULL
for(i in 1:length(b)) {
   c[i] <- b[i] - a[i - 1]
}

しかし、私はループを使用せずにこれを実行したいと思います。for()

誰もがたった1つのコマンドラインでそれを行う方法を知っていますか?

4

2 に答える 2

2

あなたabは同じ長さなので、最初にの最後の要素をトリミングしたいと思いますb。(b - a[-1]なぜそれがおそらく望ましいのかを見てみてください。)

b[-length(b)] - a[-1]
# [1] 0 1 2 3 4 5 6 7 8
于 2012-09-10T15:29:48.163 に答える
0

これは時系列で行うことができます。

 a <- ts(seq(1, 10, 1))
 b <- ts(seq(2, 20, 2))
 b- lag(a,1) 
##-----
Time Series:
Start = 1 
End = 9 
Frequency = 1 
[1] 0 1 2 3 4 5 6 7 8

必ずしもこれをお勧めしているわけではありません。基本的な時系列形式は、広く恐れられている混乱の原因です。ほとんどの人はそれを避け、動物園とxtsクラスのオブジェクトを優先します。

于 2012-09-10T17:10:09.400 に答える