I am attempting to assign NA to certain categorical values in my tibble, with tidyverse, in R. Yet, my column name isn't picked up.
Here is a fake data I have:
structure(list(id = c("1", "2", "3", "4", "5", "6", "7", "9",
"8", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
"20"), health_care_worker = c("No", "No", "No", "No", "Yes",
"No", "No", "Yes", "No", "No", "No", "No", "No", "No", "No",
"No", "No", "No", "No", "No"), how_unwell = c(1, 6, 1, 1, 1,
6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Comorbidity_one = structure(c(5L,
5L, 5L, 3L, 5L, 5L, 5L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 5L,
3L, 5L, 4L), .Label = c("Asthma (managed with an inhaler)", "Diabetes Type 2",
"High Blood Pressure (hypertension)", "No", "None"), class = "factor"),
Comorbidity_two = structure(c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 2L, NA, 2L, 1L, 1L), .Label = c("No",
"Obesity"), class = "factor"), Comorbidity_three = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "No", "No"), Comorbidity_four = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), Comorbidity_five = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), Comorbidity_six = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), Comorbidity_seven = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), Comorbidity_eight = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), Comorbidity_nine = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_)), row.names = c(NA,
-20L), class = c("tbl_df", "tbl", "data.frame"))
here is the code I have written to get my desired output:
na_strings <- c("Diarrhoea", "Long Standing Health Issues", "No","Yes", "0", "4", "15", "No", "Self-Isolating With No Symptoms",
"Showing Symptoms But Not Tested", "Mild", "Moderate")
data_replace_na <- fake_data %>%
replace_with_na_all(condition = ~.Comorbidity_one %in% na_strings,
condition = ~.Comorbidity_two %in% na_strings,
condition = ~. Comorbidity_three %in% na_strings)
This is the first error I get:
Error: unexpected symbol in:
" condition = ~.Comorbidity_two %in% na_strings,
condition = ~. Comorbidity_three"
if I remove my second condition and third one, then I get this error:
Error in .Comorbidity_one %in% na_strings :
object '.Comorbidity_one' not found
Does someone know why I cannot succeed? This seem to be two-folded problem. First, it does not pick up on my column name and second, how then I can succeed assigning the categories of those variables to the NA?