Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. ## create reproducible example ##
  2.  
  3. set.seed(3)
  4.  
  5. data <- data.frame(
  6. patient = 1:10,
  7. var1 = sample(c("Yes", "No"), 10, replace = TRUE),
  8. var2 = sample(c("Yes", "No"), 10, replace = TRUE),
  9. var3 = sample(c("Yes", "No"), 10, replace = TRUE),
  10. stringsAsFactors = FALSE,
  11. row.names = NULL
  12. )
  13.  
  14. data[data$patient %in% c(3, 5), c("var1", "var2", "var3")] <- "No"
  15.  
  16. vnms <- c("var1", "var2", "var3") # you will do this programmatically
  17.  
  18. ## The code starts here. Obviously, you can turn this into a function and I'd probably recommend that.
  19. ## PURRR CODE
  20.  
  21. data$summary_var <- purrr::map(.x = data$patient,
  22. .f = function(x) ifelse(any(data[data[["patient"]] == x, vnms] == "Yes"), "Yes", "No"))
  23.  
  24. ## LOOP CODE
  25. data$summary_var <- "No"
  26.  
  27. for (patient.i in data$patient) {
  28. if (any(data[data[["patient"]] == patient.i, vnms] == "Yes")) {
  29. data[data[["patient"]] == patient.i, "summary_var"] <- "Yes"
  30. }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement