次のコードを使用します。
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つのコマンドラインでそれを行う方法を知っていますか?
次のコードを使用します。
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つのコマンドラインでそれを行う方法を知っていますか?
あなたa
とb
は同じ長さなので、最初にの最後の要素をトリミングしたいと思いますb
。(b - a[-1]
なぜそれがおそらく望ましいのかを見てみてください。)
b[-length(b)] - a[-1]
# [1] 0 1 2 3 4 5 6 7 8
これは時系列で行うことができます。
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クラスのオブジェクトを優先します。