Guest User

Untitled

a guest
Jun 19th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.07 KB | None | 0 0
  1. data2 = data.frame('population by age' = seq(3, 24, by = 1),
  2. '2008' = c(145391,
  3. 140621,
  4. 136150,
  5. 131944,
  6. 127968,
  7. 124209,
  8. 120650,
  9. 117163,
  10. 113674,
  11. 110207,
  12. 106871,
  13. 103659,
  14. 100398,
  15. 97017,
  16. 93584,
  17. 90240,
  18. 86957,
  19. 83783,
  20. 80756,
  21. 77850,
  22. 75003,
  23. 72226
  24. ),
  25. '2009' = c(148566,
  26. 143943,
  27. 139367,
  28. 135083,
  29. 131052,
  30. NA,
  31. 123628,
  32. 120213,
  33. 116826,
  34. 113381,
  35. 109915,
  36. 106574,
  37. 103346,
  38. 100058,
  39. 96644,
  40. 93175,
  41. NA,
  42. 86455,
  43. NA,
  44. 80192,
  45. 77279,
  46. 74422
  47. ),
  48. '2010' = c(152330,
  49. 147261,
  50. 142555,
  51. 138172,
  52. 134071,
  53. 130214,
  54. 126559,
  55. 123099,
  56. 119825,
  57. 116538,
  58. 113134,
  59. 109669,
  60. 106320,
  61. 103075,
  62. 99760,
  63. 96312,
  64. 92805,
  65. NA,
  66. NA,
  67. 82733,
  68. 79661,
  69. 76739
  70. ),
  71. '2011' = c(156630,
  72. 151387,
  73. 146491,
  74. 141905,
  75. 137593,
  76. 133545,
  77. 129737,
  78. 126124,
  79. 122678,
  80. NA,
  81. 116093,
  82. 112666,
  83. 109174,
  84. 105791,
  85. 102505,
  86. 99159,
  87. 95699,
  88. 92193,
  89. 88759,
  90. 85373,
  91. 82123,
  92. 79065
  93. ))
  94.  
  95.  
  96. data7 <- data2 %>%
  97. gather(key = year, value = value, -`population.by.age` )%>%
  98. group_by(`population.by.age`) %>%
  99. nest
  100. library(imputeTS)
  101. impute_nas <- function(df, var, fun, ...) {
  102.  
  103. df[[var]] <- fun(df[[var]], ...)
  104.  
  105. return(df)
  106. }
  107. imputed <- data7 %>%
  108. mutate(
  109. interpolation = purrr::map(data, impute_nas, var = 'value', fun = imputeTS::na.locf)
  110. ) %>%
  111. select(-data) %>%
  112. unnest 
  113.  
  114. imputed <- imputed %>% spread(key = 'year', value = 'value')
  115. as.data.frame(imputed)
  116.  
  117. impute_from_previous <- function(ds) {
  118.  
  119. for (i in 2:length(colnames(ds))) {
  120. rows_missing <- which(is.na(ds[[i]]))
  121. ds[rows_missing, i] <- ds[rows_missing, i - 1]
  122. }
  123. return(ds)
  124. }
  125.  
  126. data3 <- impute_from_previous(data2)
Add Comment
Please, Sign In to add comment