Хобрук: Ваш путь к мастерству в программировании

Совокупные данные в одном столбце на основе значений/факторов в четырех других столбцах

У меня есть кадр данных в моем R-скрипте, который выглядит примерно так:

> head(species.prop)
Source: local data frame [6 x 5]

   year month  area species catch.p
  (dbl) (dbl) (chr)   (chr)   (dbl)
1  1998     4  VI      hom    17.25
2  1998     5  VII     pil    17.25
3  2000     4  VI      hom    40.25
4  1998     4  IV      hom    27.60
5  2000     1  VII     pil    46.00
6  1998     4  VI      pil     8.05

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

Я пробовал совокупность:

> aggregate(catch.p~area~species~month~year, species.prop,sum)

Ошибка в model.frame.default(formula = catch.p ~ площадь ~ вид ~ месяц ~ : объект не является матрицей

but could not figure out how to apply this function here properly

Кто-нибудь знает как это сделать?

Бесконечно благодарен!!


  • Вместо этого попробуйте aggregate(catch.p~area+species+month+year, species.prop,sum). 09.06.2016

Ответы:


1

Используйте пакет dplyr в R.

species.prop %>% group_by(species, area, month, year) %>% summarise(catch.p = sum(catch.p))

С предоставленными данными результат выглядит так

Источник: локальная база данных [6 x 5] Группы: виды, площадь, месяц [?]

  species   area month  year catch.p
   (fctr) (fctr) (dbl) (dbl)   (dbl)
1     hom     IV     4  1998   27.60
2     hom     VI     4  1998   17.50
3     hom     VI     4  2000   40.25
4     pil     VI     4  1998    8.05
5     pil    VII     1  2000   46.00
6     pil    VII     5  1998   17.50

Но чтобы показать вам, как это работает, я изменил строку 6 в исходных данных, представленных на Площадь = VII и месяц = ​​5, и это выглядит так:

Источник: локальная база данных [5 x 5] Группы: виды, площадь, месяц [?]

  species   area month  year catch.p
   (fctr) (fctr) (dbl) (dbl)   (dbl)
1     hom     IV     4  1998   27.60
2     hom     VI     4  1998   17.50
3     hom     VI     4  2000   40.25
4     pil    VII     1  2000   46.00
5     pil    VII     5  1998   25.55
09.06.2016
Новые материалы

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

Обзор 20 основных и современных методов работы с массивами в JavaScript
Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

Да, но я чувствую необходимость указать, что это или не единственные два.
Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.