2015-11-02 3 views
-1

Я новичок в R и, следовательно, изо всех сил пытаюсь выяснить, как извлечь полный список полей/столбцов из фрейма данных с помощью агрегатной функции.Агрегатная функция в R

Например, у меня есть фрейм данных df с 200 + полями. Теперь я хотел бы сгруппировать кадр данных в конкретном поле df.a, а затем упорядочить другим полем df.b. Однако в кадре выходной информации я хочу, чтобы каждая из строк содержала все поля 200+ вместо полей df.a и df.b.

Пожалуйста, помогите мне понять, как достичь этого.

+7

Добро пожаловать в StackOverflow! Пожалуйста, прочитайте информацию о [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и как дать [воспроизводимый пример] (http://stackoverflow.com/questions/ 5963269). Это облегчит вам помощь другим людям. –

+0

[R Групповые функции: sapply vs. lapply vs. apply. (http://stackoverflow.com/questions/3505701), [Объединение нескольких переменных одновременно] (http://stackoverflow.com/questions/9723208), [Как суммировать переменную по группе?] (http://stackoverflow.com/q/1660124) – zx8754

ответ

1

Вы можете написать свою собственную функцию, но, вероятно, было бы лучше, если бы вы использовали уже написанную, отлаженную и настроенную по производительности функцию. Пакет dplyr отлично подходит для таких вещей.

Я считаю себя часто пишущие строки вроде:

df %>% group_by(a) %>% arrange(b) %>% summarise(total = sum(b)) 

Где df мой dataframe, group_by функции группировать строки по конкретному столбцу (или набор столбцов) и arrange функция для изменения порядка ваши строки по столбцу (или набору столбцов). summarise - способ выполнения агрегатов и составления сводных данных. %>% - это оператор 'pipe', используемый для подачи результата выражения слева в качестве первого аргумента функции справа, вместо написания нескольких вложенных вызовов, которые трудно читать или создания промежуточных одноразовых переменных.

Надеюсь, что это поможет или даст вам несколько лучших идей.

+0

Спасибо Клирону за ответ. Это то, что я искал. Однако просто интересно, как я могу рассчитывать на конкретный столбец, используя dplyr. –

+0

Посмотрите на отредактированный пост. Вы можете использовать обобщение для создания сводных данных/сводок ваших данных. Если вам нужен конкретный ответ на конкретную проблему, пожалуйста, дайте простой пример кадра данных и желаемый результат в указанном выше вопросе. – kliron

Смежные вопросы