【发布时间】:2017-09-06 01:33:52
【问题描述】:
我有一个这样的数据框:
df<- data.frame(year= as.character(c("1997",
"1997","1997","1997","1997","1997","1998","1998")),season=
as.character(c("W", "W","W","D","D","D","W","W")),result=
as.character(c("Y", "Y","N","N","Y","N","N","N")))
我想通过year 和season 对数据进行子集化,并计算该特定子集在result 中“Y”的比例。这个新的比例列称为psit_freq。下面是一个输出示例(我制作了比例分数以帮助读者理解我需要的计算)。
output<- data.frame(year= as.character(c("1997",
"1997","1998")),season= as.character(c("W", "D","W")), psit_freq=
as.character(c("2/3", "1/3","0/2")))
我尝试过以下几种变化:
df<-
df %>%
group_by(year, season)%>%
summarise(psit_freq= freq())
但我不确定如何合并条件 if else 语句来计算 Y 响应占每个子集中 result 总行的比例。
【问题讨论】:
-
考虑从下方接受您认为最有帮助的答案(答案左侧的复选标记)。这让社区知道答案在您的案例中有效。
-
谢谢,我不知道我没有接受答案。