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
我有一个像这样的数据框:
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