首页 > 解决方案 > 在循环中减去列

问题描述

我有一个这样的数据框:

df:
   A  B  C
1  1  2  3
2  2  2  4
3  2  2  3

我想用下一个较小的列(A-0,BA,CB)减去每一列。所以我的结果应该是这样的:

df:
   A  B  C
1  1  1  1
2  2  0  2
3  2  0  1

我尝试了以下循环,但它不起作用。

for (i in 1:3) {
  j <- data[,i+1] - data[,i]
}

标签: rloopsdataframe

解决方案


尝试这个

df - cbind(0, df[-ncol(df)])

#   A B C
# 1 1 1 1
# 2 2 0 2
# 3 2 0 1

数据

df <- data.frame(A = c(1, 2, 2), B = c(2, 2, 2), C = c(3, 4, 3))

推荐阅读