У меня есть два фрейма данных, и я пытаюсь заменить NA в столбце второго фрейма данных, используя значения в столбце первого фрейма данных.Я хотел бы сделать это с помощью пакета dplyr
, и я не знаком с этим пакетом:
Вот воспроизводимый пример:
library(dplyr)
## Create the two data frames
dt1 <- data.frame(ID = c(rep(1, 6), rep(2, 6), rep(3, 6)), day = c(seq(0, 5, by= 1), seq(0, 5, by= 1), seq(0, 5, by= 1)), density = sample(1:100, 6*3))
dt2 <- data.frame(ID = c(rep(1, 6), rep(2, 6), rep(3, 6)), day = c(seq(0, 5, by= 1), seq(0, 5, by= 1), seq(0, 5, by= 1)), density = NA)
## Fill the second data frame
dt2[dt2$day == 0, c("density")] <- c(1, 2, 8)
dt2[dt2$day %in% c(1, 2, 3, 4, 5), c("density")] <- dt1[dt1$day %in% c(0, 1, 2, 3, 4), c("density")]
## the values in the column "ID" of dt1 must be equivalent to the values in the column "ID" of dt2
Как воспроизвести две последние командыиспользуя пакет dplyr
?
Вот мой тест:
dt2_fill <- dt2 %>%
mutate(density = if(day == 0){c(1, 2, 8)},
density = if(day %in% c(1, 2, 3, 4, 5)){dt1[dt1$day %in% c(0, 1, 2, 3, 4), c("density")]})
Но этот код не работает.