R 中具有最大差异的新列

new column with max difference in R

我有一个像这样的数据框:

A   1 2 3 4
B   4 5 6 9
C   2 3 4 5 

我想计算每一行的最大差异,并将其放入新列中:

A   1 2 3 4  3 (4-1)
B   4 5 6 9  3  (9-6)
C   1 3 4 5  4  (5-1)

有什么想法吗??

谢谢!!!

有多种方法可以做到这一点。评论中提到了两个。我喜欢结合使用 range()diff().

range() 给出向量中的最小值和最大值。 diff() 给出向量中值之间的差异。因此,将 diff() 应用于 range() 的输出将为您提供最大值。

apply()axis=1 结合使用,对您的 data.frame 按行执行此操作:

df$X5 <- apply(df, 1, function(x) diff(range(x)))
df
  X1 X2 X3 X4 X5
A  1  2  3  4  3
B  4  5  6  9  5
C  2  3  4  5  3