我有每天的数据,我想统计一下每天的测量在一定范围内的次数。数据也是按因子分组的,因此我需要知道在某个范围内(例如15到18)的每个因子每年的天数
我有一个超过100年的大型数据集,但这里有一些仅用于此示例的数据:
Date <- seq(as.Date("2010/01/01"), by = "day", length.out = 1095)
People <- sample.int(20, 1095, replace = TRUE)
Country <- sample(x = c("Australia", "Canada", "France"), size = 1095, replace = TRUE)
mydf <- data.frame(Date, People, Country)我想知道每个国家每年"People“值在15到18之间的次数。
因此,我的输出将是一个新的数据帧,类似于:
myDate People Country
2010 45 Australia
2010 10 Canada
2010 24 France
2011 33 Australia
2011 100 Canada
2011 4 France
2012 21 Australia
2012 66 Canada
2012 211 France任何帮助都会非常感谢,因为我正在努力解决这个问题,并寻找了答案,但我找不到一个涉及日期和因素的解决方案。
发布于 2018-03-26 02:25:07
对于data.table解决方案:
library(data.table)
setDT(mydf)[,(People=sum(between(People, 15, 18))), by = .(year(Date), Country)]
year Country V1
1: 2010 Canada 22
2: 2010 Australia 17
3: 2010 France 22
4: 2011 Canada 23
5: 2011 France 22
6: 2011 Australia 26
7: 2012 Canada 21
8: 2012 France 29
9: 2012 Australia 26https://stackoverflow.com/questions/49478924
复制相似问题