如何在r中的数据框中找到数值的最大值和最小值?

时间:2015-01-29 03:36:16

标签: r aggregate sapply

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

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,但不知道如何。

1 个答案:

答案 0 :(得分: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)))