Суммирование фрейма данных в R по 2 элементам - PullRequest
0 голосов
/ 17 февраля 2020

У меня большой набор данных, который включает в себя информацию для нескольких последовательностей, подробности их идентификатора последовательности, страны происхождения, клады, хоста и многое другое. Каждая страна имеет несколько разных последовательностей, а некоторые страны содержат последовательности из нескольких разных клад. Есть ли способ узнать количество различных кладов для каждой отдельной страны, не проверяя каждую страну один за другим (их слишком много, чтобы реально войти вручную)?

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Если ваш dataframe df имеет columns как 'страна' и 'клада', тогда вы можете запустить:

aggregate(data=df, clade ~ country, FUN=function(x) length(unique(x)))
1 голос
/ 17 февраля 2020

Без примеров данных я перефразирую ваш вопрос следующим образом:

У меня есть большой набор данных, который включает информацию о нескольких персонажах звездных звезд, подробности их цвета глаз, домашнего мира, имени и многое другое. Каждый мир имеет несколько разных цветов глаз. Есть ли способ узнать количество разных цветов глаз для каждого отдельного домашнего мира, не испытывая каждый домашний мир один за другим (их слишком много, чтобы реально войти вручную)?

Здесь мы может подсчитать, сколько раз в данных существуют различные комбинации родного мира и цвета глаз. Например, у нас есть три кареглазых персонажа из Alderaan.

library(dplyr) 
starwars %>% count(homeworld, eye_color)
# A tibble: 66 x 3
   homeworld      eye_color     n
   <chr>          <chr>     <int>
 1 Alderaan       brown         3
 2 Aleen Minor    unknown       1
 3 Bespin         blue          1
 4 Bestine IV     blue          1
 5 Cato Neimoidia red           1
 6 Cerea          yellow        1
 7 Champala       blue          1
 8 Chandrila      blue          1
 9 Concord Dawn   brown         1
10 Corellia       brown         1
# … with 56 more rows

Мы могли бы добавить еще один шаг, чтобы подсчитать, сколько цветов глаз появляется в каждом домашнем мире, подсчитав количество рядов для каждого домашнего мира по сравнению с предыдущим шагом. , Это говорит о том, что на Альдераане есть только один цвет глаз (коричневый).

starwars %>% count(homeworld, eye_color) %>% count(homeworld)
# A tibble: 49 x 2
   homeworld          n
   <chr>          <int>
 1 Alderaan           1
 2 Aleen Minor        1
 3 Bespin             1
 4 Bestine IV         1
 5 Cato Neimoidia     1
 6 Cerea              1
 7 Champala           1
 8 Chandrila          1
 9 Concord Dawn       1
10 Corellia           2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...