Перекодировать несколько столбцов в разных условиях - PullRequest
0 голосов
/ 23 декабря 2018

Мне нужно перекодировать несколько столбцов в моих данных в зависимости от условий.Я поместил образец моих данных:

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()

И, кроме того, я не могу указать год в этом фрагменте кода.

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...