明示的に名前を付けずに、データフレーム内の多くの列の1次の差を計算したいと思います。このコードでは、1つの列でうまく機能します。
set.seed(1)
Data <- data.frame(
X = sample(1:10),
Y = sample(1:10),
Z = sample(1:10))
Newdata <- as.data.frame(diff(Data$X, lag = 1))
データフレーム内の多くの列、たとえば[2:200]について同じことを計算するにはどうすればよいですか?
私はこれがあなたが望むことをするだろうと思います:
as.data.frame(lapply(Data, diff, lag=1))
## X Y Z
## 1 1 -1 -8
## 2 1 4 4
## 3 2 4 -5
## 4 -5 -5 8
## 5 6 2 -1
## 6 1 1 -1
## 7 -3 -4 -2
## 8 4 -3 -2
## 9 -9 8 1
データフレームは内部的にリストであるlapply
ため、列を上書きできます。Data[1:2]
代わりにData
、最初の2つの列、または任意の有効な列のインデックス作成を行うことができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加