Как получить сумму подсчета частоты на основе двух столбцов? - PullRequest
0 голосов
/ 16 сентября 2018

Предполагается, что кадр данных хранится как someData и имеет следующий формат:

ID                Team                Games                Medal
1                 Australia           1992 Summer          NA
2                 Australia           1994 Summer          Gold
3                 Australia           1992 Summer          Silver
4                 United States       1991 Winter          Gold
5                 United States       1992 Summer          Bronze
6                 Singapore           1991 Summer          NA

Как бы я посчитал частоты медали, основываясь на Команде - исключая NA в качестве переменной. Но в то же время общая частота каждой страны должна суммироваться, а не отображаться отдельно для Gold, Silver и Bronze.

Другими словами, я пытаюсь отобразить общее количество медалей в стране, за исключением NA.

Я пробовал что-то вроде этого:

library(plyr)
counts <- ddply(olympics, .(olympics$Team, olympics$Medal), nrow)
names(counts) <- c("Country", "Medal", "Freq")
counts

Но это просто дает мне огромный стол каждой медали для каждой страны отдельно, включая АН.

Я хотел бы сделать следующее:

Australia            2
United States        2

Любая помощь будет принята с благодарностью.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

Мы можем использовать count

library(dplyr)
df1 %>% 
  filter(!is.na(Medal)) %>%
  count(Team)
# A tibble: 2 x 2
#  Team              n
#  <fct>         <int>
#1 Australia         2
#2 United States     2
0 голосов
/ 16 сентября 2018

Вы можете сделать это в базе R с table и colSums

colSums(table(someData$Medal, someData$Team))
    Australia     Singapore United States 
            2             0             2

Данные

someData = read.table(text="ID        Team        Games         Medal
1                 Australia           '1992 Summer'          NA
2                 Australia           '1994 Summer'          Gold
3                 Australia           '1992 Summer'          Silver
4                 'United States'     '1991 Winter'          Gold
5                 'United States'     '1992 Summer'          Bronze
6                 Singapore           '1991 Summer'          NA",
header=TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...