我有一个数据帧,如:
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()
范围() 提供向量中的最小值和最大值。 给出向量中值之间的差。应用 差异() 到的输出 范围() 因此将为您提供最大值。
范围()
差异()
使用 apply() 具有 axis=1 ,对您的数据按行执行此操作。框架:
apply()
axis=1
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