Greetings,
I am trying to use a for loop to create a rescored version of several variables using case_when. However, after several hours of trying and searching, I can't figure out what I'm doing wrong. The code runs, but doesn’t create the 8 new variables I want.
Any help would be greatly appreciated.
Data
dput(head(psqi.Q5, 100))
structure(list(ID = c("IP001", "IP002", "IP003", "IP004", "IP005",
"IP007", "IP008", "IP009", "IP010", "IP011", "IP012", "IP013",
"IP015", "IP016", "IP017", "IP019", "IP020", "IP021", "IP023",
"IP031", "IP032", "IP034", "IP036", "IP037", "IP038", "IP039",
"IP040", "IP041", "IP042", "IP043", "IP044", "IP045", "IP047",
"IP048", "IP049", "IP050", "IP051", "IP052", "IP053", "IP054",
"IP055", "IP056", "IP058", "IP068", "IP070", "IP078", "IP104",
"IP132", "IP133", "IP135", "IP139", "IP141", "IP143", "IP145",
"IP146", "IP147", "IP153", "IP155", "IP156", "IP157", "IP158",
"IP160", "IP161", "IP162", "IP163", "IP164", "IP165", "IP166",
"IP168", "IP169", "IP170", "IP171", "IP172", "IP173", "IP175",
"IP176", "IP177", "IP178", "IP179", "IP180", "IP182", "IP183",
"IP184", "IP187", "IP188", "IP191", "IP192", "IP193", "IP194",
"IP196", "IP197", "IP198", "IP199", "IP200", "IP201", "IP202",
"IP203", "IP204", "IP205", "IP206"), psqi_5b = c(1, 2, 2, 2,
2, 2, 3, 2, 1, 4, 1, 2, 2, 4, 2, 2, 3, 3, 3, 3, 3, 2, 4, 2, 4,
3, 2, 4, 3, 4, 2, 3, 2, 2, 4, 2, 4, 3, 2, 4, 1, 1, 3, 4, 3, 3,
2, 4, 1, 1, 4, 3, 4, 4, 4, 2, 4, 3, 2, 4, 4, NA, 2, 4, 3, 3,
4, 4, 2, 4, 4, 1, 2, 4, 4, 2, 4, 4, 4, 4, 3, 4, 2, 4, 3, 4, 3,
3, 2, 4, 3, 3, 4, 2, 4, 4, 3, 3, 4, 2), psqi_5c = c(1, 2, 1,
1, 2, 1, 1, 2, 1, 3, 1, 1, 4, 3, 2, 1, 2, 2, 2, 2, 3, 2, 3, 2,
1, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 3, 1, 3, 1, 3, 3, 3, 3,
1, 2, 4, 1, 1, 4, 1, 4, 4, 4, 1, 4, 1, 3, 4, 2, 2, 2, 4, 2, 3,
3, 4, 4, 3, 2, 1, 1, 4, 3, 3, 4, 1, 4, 2, 2, 4, 1, 4, 4, 3, 3,
2, 2, 4, 2, 1, 4, 4, 1, 4, 3, 2, 4, 3), psqi_5d = c(1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 4, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 3, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1), psqi_5e = c(1, 1, 1,
1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 2, 1,
3, 1, 1, 2, 1, 1, 1, 2, 1, 3, 1, 4, 2, 2, 1, 1, 1, 1, 3, 1, 1,
1, 2, 1, 2, 1, 4, 1, 2, 2, 1, 4, 1, 2, 2, 1, 1, 1, 3, 3, 1, 1,
1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 4, 3, 1), psqi_5f = c(2, 1, 1,
2, 1, 1, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1,
1, 1, 1, 2, 2, 1, 1, 3, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1,
2, 1, 3, 3, 1, 3, 2, 1, 4, NA, 1, 2, 2, 2, 1, 3, 1, 2, 2, 2,
1, 2, 4, 1, 1, 1, 1, 1, 2, 1, 1, 2, 3, 1, 3, 1, 2, 3, 2, 1, 1,
3, 2, 1, 1, 1, 1, 1, 1, 2, 4, 3, 1, 4, 1), psqi_5g = c(1, 1,
1, 2, 2, 2, 1, 3, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 3, 1, 2,
2, 1, 1, 2, 3, 2, 4, 1, 3, 1, 4, 2, 1, 2, 3, 1, 3, 3, 2, 1, 4,
2, 2, 1, 4, 3, 2, 3, 3, 1, 4, 1, 1, 4, 2, 3, 1, 3, 2, 2, 2, 2,
4, 4, 4, 2, 2, 3, 1, 1, 3, 2, 1, 2, 3, 2, 3, 1, 4, 1, 3, 2, 3,
3, 1, 3, 2, 2, 4, 3, 2, 2, 4, 3, 1, 4, 2), psqi_5h = c(2, 2,
1, 2, 2, 2, 1, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1,
1, 1, 2, 1, 3, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2,
1, 1, 1, 2, 2, 1, 3, 2, 2, 4, 3, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2,
1, 4, 2, 3, 1, 1, 2, 1, 1, 3, 2, 3, 3, 3, 1, 3, 1, 1, 4, 1, 1,
1, 2, 1, 2, 2, 1, 3, 2, 4, 4, 1, 2, 1, 2), psqi_5i = c(1, 1,
1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 4, 2,
1, 1, 1, 1, 2, 1, 1, 1, 3, 1, 1, 3, 1, 2, 1, 1, 4, 2, 3, 1, 4,
1, 3, 2, 4, 3, 1, 2, 4, 4, 4, 4, 3, 4, 1, 2, 2, 4, 3, 2, 2, 2,
3, 3, 4, 4, 2, 4, 3, 2, 4, 4, 3, 4, 3, 4, 4, NA, 4, 2, 4, 1,
1, 3, 3, 1, 3, 2, 3, 2, 4, 4, 4, 1, 1, 4, 1), psqi_5othera = structure(c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L,
0L, 2L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 2L, 0L,
0L, 0L, 0L, 3L, 3L, 0L, 1L, 3L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 3L,
2L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 2L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), label = "How often during the past month have you had trouble sleeping because of this?", class = c("labelled",
"integer"))), row.names = c(NA, -100L), class = c("tbl_df", "tbl",
"data.frame"))
Code
psqi_Q5s <- c("b","c","d","e","f","g","h","i")
j <- "psqi_5"
k <- "psQ5"
for (i in psqi_Q5s){
q <- paste0(j, i) # original variable
y <- paste0(k,i) # new scored variable
# for(z in 1:8){
psqi.Q5 <- psqi.Q5 %>%
mutate(
y = case_when(
q == 1 ~ 0,
q == 2 ~ 1,
q == 3 ~ 2,
q == 4 ~ 3 #,
# TRUE ~ NA_integer_
#TRUE ~ as.numeric(q)
)
)
# }
}
Jason the #rstatsnewbie