假定数据帧存储为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
但这只是给我一张单独列出每个国家(包括NA)的每枚奖牌的庞大表格。
我想做的是以下事情:
Australia 2
United States 2
任何帮助将不胜感激。
谢谢!
答案 0 :(得分:1)
我们可以使用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
答案 1 :(得分:0)
您可以使用table
和colSums
在基数R中做到这一点
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)