【问题标题】:How do I find the max and min of a numeric wrt a factor in data frame in r?如何在 r 中的数据框中找到数字 wrt 的最大值和最小值?
【发布时间】:2015-01-29 03:36:16
【问题描述】:

我有一个包含几列的数据框,需要计算一个变量的平均值与一个因子之间的差异。例如:

C1    C2 
3     A
5     B
9     A
10    A
12    A
9     B
20    B

我想得到:

A 9
B 15

我试过了

aggregate(C1 ~ C2, data = df, FUN = function(x) max()-min()) 

但它没有工作。我觉得我应该使用 sapply,但不知道如何使用。

【问题讨论】:

    标签: r aggregate sapply


    【解决方案1】:

    您已经定义了一个匿名函数,但尚未指定要在任何地方使用的变量。

    function(x) max() - min() 替换为function(x) max(x) - min(x)

    换句话说:

    aggregate(C1 ~ C2, mydf, function(x) max(x) - min(x))
    #   C2 C1
    # 1  A  9
    # 2  B 15
    

    您也可以使用:aggregate(C1 ~ C2, mydf, function(x) diff(range(x)))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 2014-08-04
      • 2021-02-10
      • 2016-03-16
      • 1970-01-01
      相关资源
      最近更新 更多