Guest User

Untitled

a guest
Oct 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.53 KB | None | 0 0
  1. library (dplyr)
  2. library (tidyr)
  3.  
  4. testdata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
  5. testdata <- testdata %>% mutate (student.n0 = seq (1:400), location = sample(c(0,1), replace=TRUE, size=400), year = sample(c(0,1), replace=TRUE, size=400))
  6.  
  7. testdata$gre <- as.factor (case_when(
  8. testdata$gre < 520 ~ 1,
  9. testdata$gre > 519 & testdata$gre < 587 ~ 2,
  10. testdata$gre > 586 & testdata$gre < 660 ~ 3,
  11. testdata$gre > 659 ~ 4
  12. ))
  13.  
  14. testdata$gpa <- as.factor (case_when(
  15. testdata$gpa < 2.5 ~ 1,
  16. testdata$gpa > 2.4 & testdata$gpa < 3 ~ 2,
  17. testdata$gpa > 2.9 & testdata$gpa < 3.5 ~ 3,
  18. testdata$gpa > 3.4 ~ 4
  19. ))
  20.  
  21. testdata$admit <- as.factor(testdata$admit)
  22. testdata$location <- as.factor(testdata$location)
  23. testdata$year <- as.factor(testdata$year)
  24.  
  25. head (testdata)
  26. admit gre gpa rank student.n0 location year
  27. 1 0 1 4 3 1 1 0
  28. 2 1 4 4 3 2 0 1
  29. 3 1 4 4 1 3 1 0
  30. 4 1 3 3 4 4 0 0
  31. 5 0 2 2 4 5 0 0
  32. 6 1 4 3 2 6 0 0
  33.  
  34. #For location 0:
  35. testdata.0 <- testdata %>% filter (location == 0)
  36. #populate proportion table
  37. prop.admit.0 <- (round(prop.table(table(testdata.0$admit, testdata.0$year), margin = 2), 4)*100) %>% as.data.frame() %>% spread (key = Var2, value = Freq) %>% rename(Type = Var1) %>% add_column("Variable" = 'admit', .before = 1)
  38. prop.gre.0 <- (round(prop.table(table(testdata.0$gre, testdata.0$year), margin = 2), 4)*100) %>% as.data.frame() %>% spread (key = Var2, value = Freq) %>% rename(Type = Var1) %>% add_column("Variable" = 'gre', .before = 1)
  39. prop.gpa.0 <- (round(prop.table(table(testdata.0$gpa, testdata.0$year), margin = 2), 4)*100) %>% as.data.frame() %>% spread (key = Var2, value = Freq) %>% rename(Type = Var1) %>% add_column("Variable" = 'gpa', .before = 1)
  40. prop.rank.0 <- (round(prop.table(table(testdata.0$rank, testdata.0$year), margin = 2), 4)*100) %>% as.data.frame() %>% spread (key = Var2, value = Freq) %>% rename(Type = Var1) %>% add_column("Variable" = 'rank', .before = 1)
  41.  
  42. sb.prop.0 <- rbind (prop.admit.0, prop.gre.0, prop.gpa.0, prop.rank.0) %>% mutate(Variable_Type = paste(Variable, Type, sep = '_'))
  43.  
  44. sb.prop.0 <- sb.prop.0 %>% select(Variable, Type, Variable_Type, loc0_Pre_year = '0', loc0_Post_year = '1')
  45.  
  46. sb.prop.0 <- sb.prop.0 %>% mutate (loc0_DID = loc0_Post_year - loc0_Pre_year)
  47.  
  48. #For location 1:
  49. testdata.1 <- testdata %>% filter (location == 1)
  50. #populate proportion table
  51. prop.admit.1 <- (round(prop.table(table(testdata.1$admit, testdata.1$year), margin = 2), 4)*100) %>% as.data.frame() %>% spread (key = Var2, value = Freq) %>% rename(Type = Var1) %>% add_column("Variable" = 'admit', .before = 1)
  52. prop.gre.1 <- (round(prop.table(table(testdata.1$gre, testdata.1$year), margin = 2), 4)*100) %>% as.data.frame() %>% spread (key = Var2, value = Freq) %>% rename(Type = Var1) %>% add_column("Variable" = 'gre', .before = 1)
  53. prop.gpa.1 <- (round(prop.table(table(testdata.1$gpa, testdata.1$year), margin = 2), 4)*100) %>% as.data.frame() %>% spread (key = Var2, value = Freq) %>% rename(Type = Var1) %>% add_column("Variable" = 'gpa', .before = 1)
  54. prop.rank.1 <- (round(prop.table(table(testdata.1$rank, testdata.1$year), margin = 2), 4)*100) %>% as.data.frame() %>% spread (key = Var2, value = Freq) %>% rename(Type = Var1) %>% add_column("Variable" = 'rank', .before = 1)
  55.  
  56. sb.prop.1 <- rbind (prop.admit.1, prop.gre.1, prop.gpa.1, prop.rank.1) %>% mutate(Variable_Type = paste(Variable, Type, sep = '_'))
  57.  
  58. sb.prop.1 <- sb.prop.1 %>% select(Variable, Type, Variable_Type, loc1_Pre_year = '0', loc1_Post_year = '1')
  59.  
  60. sb.prop.1 <- sb.prop.1 %>% mutate (loc1_DID = loc1_Post_year - loc1_Pre_year)
  61.  
  62. #combine the DID tables
  63. combined.prop <- left_join(sb.prop.0, sb.prop.1, by = c('Variable', 'Type', 'Variable_Type'))
  64.  
  65. combined.prop <- combined.prop %>% mutate (DID = loc1_DID - loc0_DID)
  66.  
  67. Variable Type Variable_Type loc0_Pre_year loc0_Post_year loc0_DID loc1_Pre_year loc1_Post_year loc1_DID DID
  68. 1 admit 0 admit_0 71 64.52 -6.48 69.90 67.31 -2.59 3.89
  69. 2 admit 1 admit_1 29 35.48 6.48 30.10 32.69 2.59 -3.89
  70. 3 gre 1 gre_1 23 24.73 1.73 29.13 22.12 -7.01 -8.74
  71. 4 gre 2 gre_2 30 24.73 -5.27 27.18 22.12 -5.06 0.21
  72. 5 gre 3 gre_3 21 18.28 -2.72 17.48 17.31 -0.17 2.55
  73. 6 gre 4 gre_4 26 32.26 6.26 26.21 38.46 12.25 5.99
  74. 7 gpa 1 gpa_1 0 1.08 1.08 0.97 1.92 0.95 -0.13
  75. 8 gpa 2 gpa_2 17 20.43 3.43 11.65 14.42 2.77 -0.66
  76. 9 gpa 3 gpa_3 38 45.16 7.16 46.60 43.27 -3.33 -10.49
  77. 10 gpa 4 gpa_4 45 33.33 -11.67 40.78 40.38 -0.40 11.27
  78. 11 rank 1 rank_1 16 15.05 -0.95 11.65 18.27 6.62 7.57
  79. 12 rank 2 rank_2 34 41.94 7.94 31.07 44.23 13.16 5.22
  80. 13 rank 3 rank_3 29 22.58 -6.42 39.81 28.85 -10.96 -4.54
  81. 14 rank 4 rank_4 21 20.43 -0.57 17.48 8.65 -8.83 -8.26
Add Comment
Please, Sign In to add comment