我正在尝试计算值为fcoli> 15的行数,并生成一个按年份排序这些计数的向量。
一些示例数据:
Year <- c(1996,1996,1997,19971998,1999,1999,1999)
fcoli <- c(45,13,96,10,52,53,64,5)
sample <- data.frame(Year,fcoli)
我可以使用以下方法一次计算一年的行数:
nrow(subset(sample, sample$fcoli > 15 & sample$Year == 1996))
但是,我无法使用此标准一次性生成所有年份的计数。我的实际数据包含超过20年的数据,所以我宁愿不必每年手动迭代这段代码。
有什么建议吗?谢谢!
答案 0 :(得分:2)
这是一个简单的答案。
Year <- c(1996,1996,1997,1997,1998,1999,1999,1999)
fcoli <- c(45,13,96,10,52,53,64,5)
sample <- data.frame(Year,fcoli)
aggregate(fcoli~Year,FUN=length,data=sample[sample$fcoli>15,])
答案 1 :(得分:0)
library(dplyr)
df1%>% #df1 is yor data frame
filter(fcoli>15) %>%
group_by(Year)%>%
summarise(freq=n())
Source: local data frame [4 x 2]
Year freq
1 1996 1
2 1997 1
3 1998 1
4 1999 2