Я пытаюсь исправить ошибки, допущенные в полевых условиях, когда полевые работники наблюдали, какие породы деревьев (SORTNR) были посажены в каких местах (Siteid). К сожалению, ошибки, которые были сделаны, не одинаковы для разных сайтов.
То, что я пытаюсь выразить в своем коде: когда Siteid и SORTNR представляют собой конкретную комбинацию, замените SORTNR на правильное значение. Однако, когда я затем проверяю данные, все SORTNR являются NA.
Если я разбиваю его и запускаю только один из блоков перекодирования, создается впечатление, что переменная SORTNR для комбинаций, не включенных в вызов, установлена в NA, и что запуск обоих блоков приведет ко всем комбинациямбыть установленным на NA.
Как предотвратить изменение не упомянутых комбинаций на NA? Можем ли мы сделать ненужным явное заявление о том, что я хочу заменить правильные значения на себя?
Пример данных:
Siteid <- c(rep("F410", 10), "F411","F411","F411","F411","F411")
SORTNR <- c(1,2,4,5,8,9,10,11,12,2,12,14,28,15,12)
Dataframe <- data.frame(cbind(Siteid,SORTNR))
Запись
#Recoding Block 1
Dataframe <- Dataframe %>% mutate(SORTNR=case_when(
Siteid=="F410" & SORTNR==1~2,
Siteid=="F410" & SORTNR==2~2,
Siteid=="F410" & SORTNR==4~28,
Siteid=="F410" & SORTNR==5~28,
Siteid=="F410" & SORTNR==8~28,
Siteid=="F410" & SORTNR==9~28,
Siteid=="F410" & SORTNR==10~27,
Siteid=="F410" & SORTNR==11~28,
Siteid=="F410" & SORTNR==12~28))
#Recoding Block 2
Dataframe <- Dataframe %>% mutate(SORTNR=case_when(
Siteid=="F411" & SORTNR==12~13,
Siteid=="F411" & SORTNR==28~29,
Siteid=="F411" & SORTNR==14~14,
Siteid=="F411" & SORTNR==15~15