【问题标题】:new column with max difference in RR中具有最大差异的新列
【发布时间】:2017-11-20 16:26:19
【问题描述】:

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

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)

有什么想法吗??

谢谢!!!

【问题讨论】:

  • apply(df1[-1], 1, FUN = function(x) max(x)-min(x))

标签: r dataframe difference minmax


【解决方案1】:

有多种方法可以做到这一点。 cmets中提到了两个。我喜欢使用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

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多