2016-10-02 4 views
2

Я пытаюсь вычислить дополнительный столбец в моей фреймворке данных, который содержит некоторые сводные данные (среднее значение, min, max). Начиная с этого dataframeR - Вычислить итоговый столбец

Group Value 
A  15  
A  5   
B  4   
B  2  
C  25  
C  15  

Я хотел бы вычислить средства для каждой группы:

Group Mean 
A  10 
B  3 
C  20 

Но я хотел бы добавить столбец к исходному dataframe повторяющегося значения для каждой строки тех же групп , как это:

Group Value Mean 
A  15  10 
A  5  10 
B  4  3 
B  2  3 
C  25  20 
C  15  20 

мне удалось получить этот результат, используя aggregate первый (для создания временного dataframe) и чем merge ориг inal dataframe с временным, используя «Group» в качестве переменной слияния.

Я уверен, что есть более простой и быстрый способ сделать это. Следует отметить, что я хотел бы сделать это с базовыми функциями (например, без dplyr, reshape и т. Д.), Если это возможно. Спасибо!

ответ

1

В base R, это можно легко сделать с ave

df$Mean <- with(df, ave(Value, Group)) 
df 
# Group Value Mean 
#1  A 15 10 
#2  A  5 10 
#3  B  4 3 
#4  B  2 3 
#5  C 25 20 
#6  C 15 20