Guest User

Untitled

a guest
Feb 17th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. > head(df.tmp)
  2. # A tibble: 6 x 9
  3. patientid practiceid mmt.date mmt.val int pre preend post stage
  4. <dbl> <dbl> <date> <dbl> <date> <date> <date> <date> <chr>
  5. 1 21342 3.00 2015-12-09 83.0 2017-03-07 2015-12-07 2016-12-07 2017-09-07 PRE
  6. 2 19273 3.00 2015-12-11 120 2017-03-07 2015-12-07 2016-12-07 2017-09-07 PRE
  7. 3 19273 3.00 2015-12-11 50.0 2017-03-07 2015-12-07 2016-12-07 2017-09-07 PRE
  8. 4 19273 3.00 2015-12-11 0 2017-03-07 2015-12-07 2016-12-07 2017-09-07 PRE
  9. 5 19273 3.00 2015-12-17 72.0 2017-03-07 2015-12-07 2016-12-07 2017-09-07 PRE
  10. 6 19273 3.00 2015-12-17 135 2017-03-07 2015-12-07 2016-12-07 2017-09-07 PRE
  11. > str(df.tmp)
  12. Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 29984 obs. of 9 variables:
  13. $ patientid : num 21342 19273 19273 19273 19273 ...
  14. $ practiceid: num 3 3 3 3 3 3 3 3 3 3 ...
  15. $ mmt.date : Date, format: "2015-12-09" "2015-12-11" "2015-12-11" ...
  16. $ mmt.val : num 83 120 50 0 72 135 4.5 1.7 1.7 0.4 ...
  17. $ int : Date, format: "2017-03-07" "2017-03-07" "2017-03-07" ...
  18. $ pre : Date, format: "2015-12-07" "2015-12-07" "2015-12-07" ...
  19. $ preend : Date, format: "2016-12-07" "2016-12-07" "2016-12-07" ...
  20. $ post : Date, format: "2017-09-07" "2017-09-07" "2017-09-07" ...
  21. $ stage : chr "PRE" "PRE" "PRE" "PRE" ...
  22.  
  23.  
  24. # 1. Gives you pracid, stage, variable, value
  25. # 2. Combines the stage and variable fields into a single field that we want to spread
  26. # 3. Spread, pivot-like
  27.  
  28. df.tmp %>%
  29. dplyr::group_by(practiceid, stage) %>%
  30. dplyr::summarise(n.mmt = n(),
  31. n.pat = len.unique(patientid)) %>%
  32. tidyr::gather(variable, value, -(practiceid:stage)) %>% ############ <--------- 1. This bit is the trick
  33. tidyr::unite(temp, stage, variable) %>% ############ <--------- 2. This bit is the trick
  34. tidyr::spread(temp, value) %>% ############ <--------- 3. This bit is the trick
  35. dplyr::select(practiceid,
  36. PRE_n.pat, PRE_n.mmt,
  37. INTV_n.pat, INTV_n.mmt,
  38. POST_n.pat, POST_n.mmt ) %>%
  39. sapply(., as.character) %>%
  40. as_data_frame(.)
  41.  
  42.  
  43. # A tibble: 31 x 7
  44. practiceid PRE_n.pat PRE_n.mmt INTV_n.pat INTV_n.mmt POST_n.pat POST_n.mmt
  45. <chr> <chr> <chr> <chr> <chr> <chr> <chr>
  46. 1 3 11 345 6 67 4 16
  47. 2 4 13 414 13 318 <NA> <NA>
  48. 3 5 16 577 14 151 <NA> <NA>
  49. 4 7 10 308 10 189 <NA> <NA>
  50. 5 9 13 333 17 366 16 195
  51. 6 10 29 1367 22 285 <NA> <NA>
  52. 7 11 4 89 4 118 <NA> <NA>
  53. 8 12 4 147 4 96 <NA> <NA>
  54. 9 13 30 808 31 465 <NA> <NA>
  55. 10 14 39 1915 34 341 <NA> <NA>
Add Comment
Please, Sign In to add comment