在 R 中对多列使用 Diff()
Using Diff() in R for multiple columns
我想计算数据框中许多列的一阶差分而不明确命名它们。它适用于带有此代码的一列:
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
来仅执行前两列或任何有效的列索引。
我想计算数据框中许多列的一阶差分而不明确命名它们。它适用于带有此代码的一列:
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
来仅执行前两列或任何有效的列索引。