简体   繁体   中英

How do I get the sum of frequency count based on two columns?

Assuming that the dataframe is stored as someData , and is in the following format:

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

How would I count the frequencies of the medal, based on the Team - while excluding NA as an variable. But at the same time, the total frequency of each country should be summed, rather than displayed separately for Gold , Silver and Bronze .

In other words, I am trying to display the total number of medals PER country, with the exception of NA .

I have tried something like this:

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

But this just gives me a massive table of every medal for every country separately, including NA.

What I would like to do is the following:

Australia            2
United States        2

Any help would be greatly appreciated.

Thank you!

We can use 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

You can do that in base R with table and colSums

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

Data

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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM