У меня есть датафрейм. Я хотел бы узнать, какое заболевание не регистрируется в районе. Так, например: В зоне А нет эпидемического паротита
Что я хотел бы сделать, так это то, что везде, где нет болезни, я хотел бы записать ноль в столбце n.
Я думал, что это может быть что-то вроде
DATA$missing<-DATA%>% if (DISEASE %in% DISEASE){"no"}
Но это не работает, и я действительно не ожидал этого, но надеялся, что это сработает...
Вот мои данные, в этом примере я удалил свинку из области А, отфильтровав исходный фрейм тестовых данных. Как я могу понять, что эпидемический паротит не находится в области А в этом новом наборе данных? И другие комбинации ЗАБОЛЕВАНИЯ И ОБЛАСТИ, которые могут отсутствовать, а затем возвращать значение n = 0 в столбце подсчета? Благодарю.
library (tidyverse)
library (epitools)
# here's my made up data
DISEASE = c("Marco Polio","Marco Polio","Marco Polio","Marco Polio","Marco Polio",
"Mumps","Mumps","Mumps","Mumps","Mumps",
"Chicky Pox","Chicky Pox","Chicky Pox","Chicky Pox","Chicky Pox")
YEAR = c(2011, 2012, 2013, 2014, 2015,
2011, 2012, 2013, 2014, 2015,
2011, 2012, 2013, 2014, 2015)
VALUE = c(82,89,79,51,51,
79,91,69,89,78,
71,69,95,61,87)
AREA =c("A", "B","C")
DATA = data.frame(DISEASE, YEAR, VALUE,AREA)
DATA<-DATA%>%filter(DISEASE ! = "Mumps" | AREA ! = "A")
Редактировать: Мой ожидаемый результат был бы таким
new_row<-c("Mumps","2015",0,"A")
DATA<-rbind(DATA,new_row)
отредактировано для ясности
Почему новая линейка обязательно к 2015 году?
абсолютно дубликат! Спасибо, что нашли это. Я отредактирую свой вопрос.
DATA %>% complete(AREA, DISEASE, fill=list(VALUE=0))
# A tibble: 14 x 4
# Groups: AREA [3]
AREA DISEASE YEAR VALUE
<fct> <fct> <dbl> <dbl>
1 A Chicky Pox 2013 95
2 A Marco Polio 2011 82
3 A Marco Polio 2014 51
4 A Mumps NA 0
5 B Chicky Pox 2011 71
6 B Chicky Pox 2014 61
7 B Marco Polio 2012 89
8 B Marco Polio 2015 51
9 B Mumps 2013 69
10 C Chicky Pox 2012 69
11 C Chicky Pox 2015 87
12 C Marco Polio 2013 79
13 C Mumps 2011 79
14 C Mumps 2014 89
Если вы хотите, чтобы в строке 0 был указан конкретный год, вы можете добавить его к аргументу fill=list()
.
так каков будет ваш ожидаемый результат?