Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## create reproducible example ##
- set.seed(3)
- data <- data.frame(
- patient = 1:10,
- var1 = sample(c("Yes", "No"), 10, replace = TRUE),
- var2 = sample(c("Yes", "No"), 10, replace = TRUE),
- var3 = sample(c("Yes", "No"), 10, replace = TRUE),
- stringsAsFactors = FALSE,
- row.names = NULL
- )
- data[data$patient %in% c(3, 5), c("var1", "var2", "var3")] <- "No"
- vnms <- c("var1", "var2", "var3") # you will do this programmatically
- ## The code starts here. Obviously, you can turn this into a function and I'd probably recommend that.
- ## PURRR CODE
- data$summary_var <- purrr::map(.x = data$patient,
- .f = function(x) ifelse(any(data[data[["patient"]] == x, vnms] == "Yes"), "Yes", "No"))
- ## LOOP CODE
- data$summary_var <- "No"
- for (patient.i in data$patient) {
- if (any(data[data[["patient"]] == patient.i, vnms] == "Yes")) {
- data[data[["patient"]] == patient.i, "summary_var"] <- "Yes"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement