У меня есть следующие данные, и я должен был создать новый столбец, используя mutate, детали которого, когда color = 'g', затем взять уровень в строке g минус показатель уровня в строке 'r'.
Затем аналогично с типом.Где type = 1, тогда возьмите соответствующий уровень минус уровень в строке типа 2.
library(dplyr)
d <- tibble(
date = c("2018", "2018", "2018", "2019", "2019", "2019", "2020", "2020", "2020", "2020"),
colour = c("none","g", "r", "none","g", "r", "none", "none", "none", "none"),
type = c("type1", "none", "none", "type2", "none", "none", "none", "none", "none", "none"),
level= c(78, 99, 45, 67, 87, 78, 89, 87, 67, 76))
Просто чтобы прояснить, я хочу, чтобы данные выглядели так.
Итак, данные должны выглядеть так:
d2 <- tibble(
date = c("2018", "2018", "2018", "2019", "2019", "2019", "2020", "2020", "2020", "2020"),
colour = c("none","g", "r", "none","g", "r", "none", "none", "none", "none"),
type = c("type1", "none", "none", "type2", "none", "none", "none", "none", "none", "none"),
level= c(78, 99, 45, 67, 87, 78, 89, 87, 67, 76),
color_gap = c("NULL", 44, "NULL", "NULL", 9, "NULL", "NULL", "NULL", "NULL", "NULL"),
type_gap = c(11, "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL"))
Я началиспользуйте mutate и case когда и дойдете до ниже.Тем не менее, я застрял в окончательной части расчета.Как мне сказать, что я хочу взять уровень цвета g - уровень цвета r?
d %>%
mutate(color_gap = case_when(color == "g" ~ level)%>%
mutate(type_gap = case_when(type== "type1" ~ level)%>%
) -> d2
Кто-нибудь знает, как это сделать?
Спасибо