[英]How do I get the sum of frequency count based on two columns?
假设数据帧存储为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
任何帮助将不胜感激。
谢谢!
我们可以使用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
你可以用table
和colSums
在 base R 中做到这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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.