Я пытаюсь группировать некоторые данные в фреймворке данных и выполнять некоторые вычисления по результатам через цикл.Зацикливание нескольких столбцов в фрейме данных в R
Возьмем следующую dataframe- «age_wght»
Year Last_Name First_Name Age Weight
1 2000 Smith John 20 145
2 2000 Smith Matt 9 85
3 2005 Smith John 25 160
4 2000 Jones Bob 12 100
5 2000 Jones Mary 18 120
6 2005 Jones Mary 23 130
7 2000 Jones Carrie 9 90
8 2005 Jones Bob 17 210
Я пытаюсь получить средний возраст и вес для каждого человека.
Я могу сделать это с помощью tapply: В настоящее время я рассчитать путем создания нового ключевого столбца в dataframe через:
age_wght $ ключом1 = паста (age_wght $ Last_Name, age_wght $ First_Name, Сентябре =». «)
Year Last_Name First_Name Age Weight key1
1 2000 Smith John 20 145 Smith.John
2 2000 Smith Matt 9 85 Smith.Matt
3 2005 Smith John 25 160 Smith.John
4 2000 Jones Bob 12 100 Jones.Bob
5 2000 Jones Mary 18 120 Jones.Mary
6 2005 Jones Mary 23 130 Jones.Mary
Затем, используя tapply, как показано ниже:
< avg_age - с (age_wght, tapply (Возраст, ключ1, ПОТЕХИ = среднее))
< avg_wght -с (age_wght, tapply (вес, key1, FUN = средняя))
< age_wght_summary - data.frame (avg_age, avg_wght)
age_wght_summary
Но что я тогда то, что выглядит следующим образом:
avg_age avg_wght
Jones.Bob 14.5 155.0
Jones.Carrie 9.0 90.0
Jones.Mary 20.5 125.0
Smith.John 22.5 152.5
Smith.Matt 9.0 85.0
который имеет смысл, поскольку я помещаю в tapply по индексу ключ1, но мой желаемый результат 9 иметь таблицу с заголовками: Last_Name First_Name avg_age avg_wght
Я также попробовал библиотеку dplyr, используя group_by, но не смог заставить ее работать.
Используйте 'aggregate' как -' агрегатный (cbind (Возраст , Вес) ~ Last_Name + Fi rst_Name, data = dat, FUN = mean) ' – thelatemail