Мне нужно перекодировать несколько столбцов в моих данных в зависимости от условий.Я поместил образец моих данных:
data_test <- structure(list(county = c("algarrobo", "alhue", "alto del carmen","ancud", "andacollo", "angol", "antofagasta", "yumbel", "yungay","zapallar"),
year = c(2001, 2001, 2001, 2001, 2001, 2001, 2001,2016, 2016, 2016),
ruling = c(0, 0, 0, 1, 0, 1, 1, 0, 0, 0),
adjacent_county1 = c("el quisco", "san pedro", "tierra amarilla","maullin", "coquimbo", "nacimiento", "mejillones", "cabrero","pemuco", "papudo"),
adjacent_county2 = c("casablanca", "melipilla","vallenar", "dalcahue", "la serena", "renaico", "sierra gorda","quillon", "pinto", "la ligua"),
adjacent_county3 = c(NA,"paine", "la higuera", "quemchi", "vicuna", "collipulli","san pedro de atacama", "florida", "antuco", "nogales"),
adjacent_county4 = c(NA, "mostazal", "vicuna", NA, "rio hurtado","ercilla", "taltal", "hualqui", "tucapel", "puchuncavi"),
adjacent_county5 = c(NA, "graneros", NA, NA, NA, "los sauces","diego de almagro", "san rosendo", "los angeles", NA),
adjacent_county6 = c(NA,"rancagua", NA, NA, NA, "canete", NA, "laja", "cabrero",NA),
adjacent_county7 = c(NA, "donihue", NA, NA, NA, "puren",NA, "los angeles", NA, NA),
adjacent_county8 = c(NA, "coltauco",NA, NA, NA, "los alamos", NA, NA, NA, NA),
adjacent_county9 = c(NA,"las cabras", NA, NA, NA, "curanilahue", NA, NA, NA, NA),
adjacent_county10 = c(NA_character_, NA_character_, NA_character_,NA_character_, NA_character_, NA_character_, NA_character_,NA_character_, NA_character_, NA_character_),
adjacent_county11 = c(NA_character_,NA_character_, NA_character_, NA_character_, NA_character_,NA_character_, NA_character_, NA_character_, NA_character_,NA_character_)),
row.names = c(NA, -10L), class = c("tbl_df","tbl", "data.frame"))
Например, у меня есть округ Algarrobo
в 2001 году с постановлением = 0. Мне нужно перекодировать все Algarrobo
в следующих столбцах как1, но только на 2001 год.И то же самое для следующих округов во фрейме данных.Я очень сложен в этой проблеме, потому что я думал о возможных решениях, но они очень нелегкие и проблемные для всех возможных комбинаций, которые я должен сделать.Например:
data_test <- data_test %>% map_at(c("adjacent_county1", "adjacent_county2",
"adjacent_county3"), function(x) {recode(x, "algarrobo" = "0")}) %>% bind_rows()
И, кроме того, я не могу указать год в этом фрагменте кода.
Спасибо,