楼主: 屋檐滴语
2673 4

[学习分享] tidyr包的用法初探 [推广有奖]

  • 5关注
  • 7粉丝

已卖:897份资源

教授

80%

还不是VIP/贵宾

-

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

楼主
屋檐滴语 发表于 2017-6-8 23:23:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. ---
  2. title: "tidyr包的用法"
  3. author: "R语言小能手"
  4. date: "2017年6月8日"
  5. output:
  6. html_document:
  7.     number_sections: yes
  8.     toc: yes
  9. ---

  10. #准备数据框

  11. ```{r}
  12. person=c("Alex","Bob","Cathy")
  13. grade=c(2,3,4)
  14. score=c(78,89,80)
  15. Data=data.frame(person,grade,score)
  16. print(Data)
  17. ```

  18. #gather()将宽数据转为长数据  

  19. ##对所有的列进行转换

  20. ```{r warning=FALSE,message=FALSE}
  21. library(tidyr)
  22. library(dplyr)
  23. LongData1=gather(Data,variable,value)
  24. print(LongData1)
  25. ```

  26. ##去掉部分列,剩余的列进行转换

  27. ```{r}
  28. LongData2=gather(Data,variable,value,-person)
  29. print(LongData2)
  30. ```

  31. ##选择部分列进行转换,剩余的列保持不变

  32. ```{r}
  33. age=c(20,21,22)
  34. NewData=data.frame(Data,age)
  35. LongData3=gather(NewData,variable,value,grade:age)
  36. print(LongData3)
  37. ```

  38. #spread()将长数据转为宽数据

  39. ```{r}
  40. WideData=spread(LongData3,variable,value)
  41. WideData
  42. ```

  43. #unite()将n个变量合成一个变量

  44. ```{r}
  45. UniteData=unite(WideData,information,person,age,grade,score,sep="-")
  46. print(UniteData)
  47. ```

  48. #separate()将变量按照标记拆分

  49. ```{r}
  50. SeparateData=separate(UniteData,information,c("person","age","grade","score"),sep="-")
  51. print(SeparateData)
  52. ```
复制代码

二维码

扫码加我 拉你入群

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

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

关键词:DYR tid information Informatio formation

已有 1 人评分论坛币 收起 理由
jiangbeilu + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

沙发
屋檐滴语 发表于 2017-6-8 23:29:55
上面的代码复制后粘贴到Rmarkdown里面,点击knit就可以生成结果了。同时为了方便,我将生成的网页转为pdf格式一并上传。

藤椅
gongjiangchao 发表于 2017-6-8 23:58:27
支持一下把

板凳
tmdxyz 发表于 2017-6-9 06:26:43
学习一下,谢谢楼主。可是
上面的代码复制后粘贴到Rmarkdown里面,点击knit就可以生成结果了
这句话我都没弄懂,实在是小白呀

报纸
屋檐滴语 发表于 2017-6-9 10:50:32
tmdxyz 发表于 2017-6-9 06:26
学习一下,谢谢楼主。可是
上面的代码复制后粘贴到Rmarkdown里面,点击knit就可以生成结果了
这句话我都没 ...
建议安装Rstudio,点击左上角“+”号,第三个就是R markdown

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 03:04