n列减法

Pra*_*rad 3 loops r dataframe data.table

在N数或列式减法中需要帮助,下面是输入数据帧中的列.

输入数据帧:

A   B   C   D
1   4   6   2
3   3   3   4
1   2   2   2
4   4   4   4
5   2   3   2
Run Code Online (Sandbox Code Playgroud)

预期产出:

A      B-A     C-B      D-C
1       3       2       -4
3       0       0       1
1       1       0       0
4       0       0       0
5       -3      1       -1
Run Code Online (Sandbox Code Playgroud)

同样会有很多列到10.

我能够编写2列的代码:

码:

df$(B-A) <- df$B - df$A
df$(C-B) <- df$C - df$B
Run Code Online (Sandbox Code Playgroud)

等等......但是这应该是循环的,因为有近10到12列.请帮我.

Sot*_*tos 5

这是一个Vectorized方法来做到这一点,

cbind.data.frame(df[1], df[-1] - df[-ncol(df)])
Run Code Online (Sandbox Code Playgroud)

这使,

  A  B C  D
1 1  3 2 -4
2 3  0 0  1
3 1  1 0  0
4 4  0 0  0
5 5 -3 1 -1
Run Code Online (Sandbox Code Playgroud)