搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  tidyr.pdf
资料下载链接地址: https://bbs.pinggu.org/a-2299531.html
附件大小:
260.66 KB   举报本内容
  1. ---
  2. title: "tidyr"
  3. author: "cxy"
  4. date: "2017年8月4日"
  5. output: html_document
  6. ---

  7. ```{r setup, include=FALSE}
  8. knitr::opts_chunk$set(echo = TRUE)
  9. ```

  10. # 准备数据

  11. ```{r warning=FALSE}
  12. library(tidyr)
  13. library(dplyr)
  14. set.seed(10)
  15. activities <- data.frame(
  16. id = sprintf("x1.%02d", 1:10),
  17. trt = sample(c('cnt', 'tr'), 10, T),
  18. work.T1 = runif(10),
  19. play.T1 = runif(10),
  20. talk.T1 = runif(10),
  21. work.T2 = runif(10),
  22. play.T2 = runif(10),
  23. talk.T2 = runif(10))
  24. activities
  25. ```

  26. # 需要生成的终极效果

  27. ```{r}
  28. activities %>%
  29. gather(key, value, -id, -trt) %>%
  30. separate(key, into = c("location", "time")) %>%
  31. arrange(id, trt, time) %>%
  32. spread(location, value)
  33. ```

  34. # 逐步演示

  35. ## 把除id和trt之外的字段变成记录或者叫观测值

  36. ```{r}
  37. a=gather(activities,key, value, -(id:trt))
  38. a
  39. ```

  40. ## 把key拆分成两列

  41. ```{r}
  42. b=separate(a,key,c("location", "time"))
  43. b
  44. ```

  45. ## 按照id、trt、time三个关键字进行排序

  46. ```{r}
  47. c=arrange(b,id,trt,time)
  48. c
  49. ```

  50. ## 把location的字段值变成字段,值为value

  51. ```{r}
  52. d=spread(c,location,value)
  53. d
  54. ```

  55. # 倒回去,d生成定制化的结果activities

  56. ## 把play、talk、work字段变成字段值,建立字段location、value

  57. ```{r}
  58. e=gather(d,location,value,play:work)
  59. e
  60. ```

  61. ## 把location和time字段合并,建立字段key

  62. ```{r}
  63. f=unite(e,key,location,time,sep=".")
  64. f
  65. ```

  66. ## 把key的字段值变成字段

  67. ```{r}
  68. g=spread(f,key,value)
  69. g
  70. ```

  71. # d生成activities一步优雅实现

  72. ```{r}
  73. d %>%
  74. gather(location,value,play:work) %>%
  75. unite(key,location,time,sep=".") %>%
  76. spread(key,value)
  77. ```
  78. ---
  79. title: "tidyr"
  80. author: "cxy"
  81. date: "2017年8月4日"
  82. output: html_document
  83. ---

  84. ```{r setup, include=FALSE}
  85. knitr::opts_chunk$set(echo = TRUE)
  86. ```

  87. # 准备数据

  88. ```{r warning=FALSE}
  89. library(tidyr)
  90. library(dplyr)
  91. set.seed(10)
  92. activities <- data.frame(
  93. id = sprintf("x1.%02d", 1:10),
  94. trt = sample(c('cnt', 'tr'), 10, T),
  95. work.T1 = runif(10),
  96. play.T1 = runif(10),
  97. talk.T1 = runif(10),
  98. work.T2 = runif(10),
  99. play.T2 = runif(10),
  100. talk.T2 = runif(10))
  101. activities
  102. ```

  103. # 需要生成的终极效果

  104. ```{r}
  105. activities %>%
  106. gather(key, value, -id, -trt) %>%
  107. separate(key, into = c("location", "time")) %>%
  108. arrange(id, trt, time) %>%
  109. spread(location, value)
  110. ```

  111. # 逐步演示

  112. ## 把除id和trt之外的字段变成记录或者叫观测值

  113. ```{r}
  114. a=gather(activities,key, value, -(id:trt))
  115. a
  116. ```

  117. ## 把key拆分成两列

  118. ```{r}
  119. b=separate(a,key,c("location", "time"))
  120. b
  121. ```

  122. ## 按照id、trt、time三个关键字进行排序

  123. ```{r}
  124. c=arrange(b,id,trt,time)
  125. c
  126. ```

  127. ## 把location的字段值变成字段,值为value

  128. ```{r}
  129. d=spread(c,location,value)
  130. d
  131. ```

  132. # 倒回去,d生成定制化的结果activities

  133. ## 把play、talk、work字段变成字段值,建立字段location、value

  134. ```{r}
  135. e=gather(d,location,value,play:work)
  136. e
  137. ```

  138. ## 把location和time字段合并,建立字段key

  139. ```{r}
  140. f=unite(e,key,location,time,sep=".")
  141. f
  142. ```

  143. ## 把key的字段值变成字段

  144. ```{r}
  145. g=spread(f,key,value)
  146. g
  147. ```

  148. # d生成activities一步优雅实现

  149. ```{r}
  150. d %>%
  151. gather(location,value,play:work) %>%
  152. unite(key,location,time,sep=".") %>%
  153. spread(key,value)
  154. ```
复制代码






    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

GMT+8, 2025-12-30 00:17