У меня есть большой иш набор данных со структурой что-то вроде следующего:Отдельные строки на основе диапазона дат
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")
Я хочу, чтобы найти все строки с комбинацией переменных, которые не были записаны в предыдущей х-месячный период. Поэтому, когда я смотрю на комбинации pathogen
и variant
, который не был записан в предыдущие 3 месяца я иду от:
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?
Будет ли он соответствовать вашим потребностям, чтобы разделить диапазон дат на х месяцев и сообщить о тех комбинациях, которые появляются в каждом интервале? –
Я действительно делал что-то подобное, используя функцию 'cut', но если комбинация переменных присутствует три месяца, и один из перерывов приходится на этот период, я получу повторы, которые я не хочу. – patabongo