本节书摘来自异步社区《从Excel到R 数据分析进阶指南》一书中的第4章,第4.1节,作者 王彦平(蓝鲸),更多章节内容可以访问云栖社区“异步社区”公众号查看
第4章 数据预处理
从Excel到R 数据分析进阶指南
本章是对清洗完的数据进行整理,以便后期的统计和分析工作,主要包括数据表的合并、排序、数据分列、数据表匹配和设置索引列等工作。
4.1 数据合并
首先是对不同的数据表进行合并。数据表的合并有3种,即横向合并、纵向合并和增加新字段。我们这里创建一个新的数据表df1,并将df和df1两个数据表进行纵向合并。
df1<-data.frame(id=c(1007,1008,1009,1010),
city=c("Beijing","shenZhen","guangzhou","shenzhen"),
age=c(25,34,24,37),
category=c("100-D","100-A","110-C","110-A"),
price=c(1600,2633,2433,4442))
纵向合并的意思就是在数据表的后面追加新的行记录,R中使用rbind()函数来完成这个工作。下面是具体的代码,将df和df1两个数据表进行纵向合并。
#合并数据表
df<-rbind(df,df1)
第二种数据表合并的方法是在现有的数据表中增加新的字段。增加新字段的方法有两种,将现有的字段进行合并,通过现有字段进行计算后生产新字段。
下面的代码中我们使用paste()函数将id和city字段进行合并,生产新的id_city字段,并合并在df数据表中。
#合并两个字段的内容
id_city<-paste(df$id,df$city)
df=cbind(df,id_city)
另一种方法是对数据表中的字段进行计算,产生新的字段。下面的代码中对price进行计算生产每条记录在price中的比率字段,并合并在原有的数据表中。
#计算新字段并合并
rate=round(df$price/sum(df$price),digits = 2)
[1] 0.04 0.11 0.07 0.17 0.11 0.14 0.05 0.08 0.08 0.14
df=cbind(df,rate)