2015-01-29 2 views
0

У меня есть кадр данных с несколькими столбцами и нужно рассчитать разницу между средним значением переменной по отношению к коэффициенту. Например:Как найти максимальные и минимальные числа по коэффициенту в кадре данных в r?

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()) 

, но это не сработало. У меня такое чувство, что я должен использовать его, но не знаю, как это сделать.

ответ

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))).