经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
- ---
- title: "tidyr包的用法"
- author: "R语言小能手"
- date: "2017年6月8日"
- output:
- html_document:
- number_sections: yes
- toc: yes
- ---
- #准备数据框
- ```{r}
- person=c("Alex","Bob","Cathy")
- grade=c(2,3,4)
- score=c(78,89,80)
- Data=data.frame(person,grade,score)
- print(Data)
- ```
- #gather()将宽数据转为长数据
- ##对所有的列进行转换
- ```{r warning=FALSE,message=FALSE}
- library(tidyr)
- library(dplyr)
- LongData1=gather(Data,variable,value)
- print(LongData1)
- ```
- ##去掉部分列,剩余的列进行转换
- ```{r}
- LongData2=gather(Data,variable,value,-person)
- print(LongData2)
- ```
- ##选择部分列进行转换,剩余的列保持不变
- ```{r}
- age=c(20,21,22)
- NewData=data.frame(Data,age)
- LongData3=gather(NewData,variable,value,grade:age)
- print(LongData3)
- ```
- #spread()将长数据转为宽数据
- ```{r}
- WideData=spread(LongData3,variable,value)
- WideData
- ```
- #unite()将n个变量合成一个变量
- ```{r}
- UniteData=unite(WideData,information,person,age,grade,score,sep="-")
- print(UniteData)
- ```
- #separate()将变量按照标记拆分
- ```{r}
- SeparateData=separate(UniteData,information,c("person","age","grade","score"),sep="-")
- print(SeparateData)
- ```
复制代码
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|