楼主: 屋檐滴语
1306 2

[学习分享] tidyr学习笔记 [推广有奖]

  • 5关注
  • 7粉丝

已卖:897份资源

教授

80%

还不是VIP/贵宾

-

威望
0
论坛币
11884 个
通用积分
272.9886
学术水平
28 点
热心指数
76 点
信用等级
16 点
经验
2225 点
帖子
882
精华
0
在线时间
2274 小时
注册时间
2010-5-19
最后登录
2025-11-22

楼主
屋檐滴语 发表于 2017-8-4 17:27:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  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. ```
复制代码

tidyr.pdf (260.66 KB)


二维码

扫码加我 拉你入群

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

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

关键词:学习笔记 DYR tid 习笔记 Activities

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
cheetahfly + 30 + 2 + 2 + 1 精彩帖子

总评分: 论坛币 + 30  学术水平 + 2  热心指数 + 2  信用等级 + 1   查看全部评分

沙发
waterhorse 发表于 2017-8-6 12:16:35
XIE XIE, LEANR A LOT ON DPLYR.

藤椅
cheetahfly 在职认证  发表于 2018-2-8 20:24:09
很好的总结,多谢分享。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 22:15