【发布时间】:2015-04-09 11:10:14
【问题描述】:
我有一个大型数据集,其结构如下:
structure(list(pathogen = c("MRSA", "L. pneumophila", "MRSA",
"L. pneumophila", "MRSA", "MRSA", "MRSA", "L. pneumophila", "L. pneumophila",
"MRSA"), variant = c("mecA", "sg1", "mecA", "sg1", "mecA", "mecC",
"mecA", "sg1", "sg6", "mecA"), n = c(25L, 14L, 235L, 2L, 64L,
15L, 13L, 6L, 11L, 8L), date = structure(c(15156, 15248, 15279,
15279, 15309, 15340, 15340, 15400, 15431, 15461), class = "Date")), .Names = c("pathogen",
"variant", "n", "date"), row.names = c(NA, -10L), class = "data.frame")
我想查找包含上一个 x 个月期间未记录的变量组合的每一行。因此,当我寻找前 3 个月未记录的 pathogen 和 variant 的组合时,我来自:
pathogen variant n date
1 MRSA mecA 25 2011-07-01
2 L. pneumophila sg1 14 2011-10-01
3 MRSA mecA 235 2011-11-01
4 L. pneumophila sg1 2 2011-11-01
5 MRSA mecA 64 2011-12-01
6 MRSA mecC 15 2012-01-01
7 MRSA mecA 13 2012-01-01
8 L. pneumophila sg1 6 2012-03-01
9 L. pneumophila sg6 11 2012-04-01
10 MRSA mecA 8 2012-05-01
到:
pathogen variant n date
1 MRSA mecA 25 2011-07-01
2 L. pneumophila sg1 14 2011-10-01
3 MRSA mecA 235 2011-11-01
6 MRSA mecC 15 2012-01-01
8 L. pneumophila sg1 6 2012-03-01
9 L. pneumophila sg6 11 2012-04-01
10 MRSA mecA 8 2012-05-01
到目前为止,我想到的所有解决方案都涉及编写循环。我也在尝试尽可能多地使用 dplyr 进行分析,所以我的问题是:这在 dplyr 中可行吗?如果不是,R-ish 方法会是什么样子?
【问题讨论】:
-
将您的日期范围划分为 x 个月间隔并报告出现在每个间隔中的那些组合是否满足您的需求?
-
我确实考虑过使用
cut函数做类似的事情,但如果变量组合存在三个月,并且其中一个休息时间落在那个时期内,我会得到重复,我不想。