使用plyr包中的rbind

110 篇文章 ¥59.90 ¥99.00
本文介绍了如何在R语言中利用plyr包的rbind.fill函数进行数据框的纵向合并。该函数能自动填充缺失值,确保合并后的数据完整。通过示例展示了如何合并两个具有不同结构的数据框df1和df2,强调了合并时对列名和列数的要求。

使用plyr包中的rbind.fill函数在R语言中可以实现纵向合并两个数据列不同的数据框(dataframe)。rbind.fill函数的功能是将两个数据框按照行的维度进行合并,并填充缺失的值。

下面我们将通过一个示例来演示如何使用rbind.fill函数来合并两个不同的数据框。

假设我们有两个数据框df1和df2,它们的结构如下所示:

df1 <- data.frame(A = c(1, 2, NA),
                  B = c("a", NA, "c"))

df2 <- data.frame(A = c(3, NA, 4),
                  B = c("d", "e", NA))

现在我们要将这两个数据框按照行的维度进行合并,并填充缺失的值。我们可以使用plyr包中的rbind.fill函数来实现这个目标。

首先,我们需要安装并加载plyr包:

install.packages("plyr")
library(plyr)

然后,我们可以使用rbind.fill函数将df1和df2合并起来:

merged_df <- rbind.fill(df1, df2)

合并后的数据框merged_df的结果如下所示:

   A    B
1  1    a
2  2 <NA>
################################################# # 1.查看、设置当前文件夹/目录 ################################################# getwd() setwd("D:/MyR_New") getwd() ################################################# # 2.读取数据 ################################################# # 请联网搜索读取Excel文件的R命令,读取给定的四六级成绩Excel文件,读取的数据赋值给cet201712 # 如果需要安装R,请自行安装并装载 # 下面赋值语句请补充完毕 cet201712<- length(cet201712) dim(cet201712) names(cet201712) summary(cet201712) head(cet201712) tail(cet201712) cet201712[1:10,"score"] mean(cet201712$score) View(cet201712) View(table(cet201712$school)) ####################################################### # 3.简单的数据清洗 # http://blog.sina.com.cn/s/blog_13b7ba9b00102x42m.html ####################################################### duplicated(cet201712$StuID) cet201712<-unique(cet201712) cet201712[is.na(cet201712)]<-0 cet201712<-na.omit(cet201712) major=as.vector(cet201712$major) class(major) install.packages("raster") library(raster) Major<-trim(as.character(cet201712$major)) cet201712$major<-Major # 较为复杂的数据清洗 # https://www.cnblogs.com/payton/p/4894747.html dim(cet201712) length(cet201712[which(cet201712$score==0),"score"]) install.packages("dplyr") library(dplyr) cet201712<-filter(cet201712,score!=0) dim(cet201712) ############################################################# # 4.数据处理dplyrplyr # https://blog.csdn.net/c1z2w3456789/article/details/50899197 # https://blog.csdn.net/G090909/article/details/50769701 ############################################################# install.packages("plyr") library("plyr") each(max,min,median,sd)(cet201712$score) each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4"),"score"]) each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET6"),"score"]) Temp<-each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4"),"score"]) class(Temp) Temp<-as.data.frame(Temp) Temp names(Temp) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET6"),"score"])) # 各学院大英四级成绩分布对比 View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="求索荣誉学院"),"score"])) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="国际商学院"),"score"])) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="国际传媒学院"),"score"])) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="涉外法政学院"),"score"])) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="英语学院"),"score"])) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="日语学院"),"score"])) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="欧洲语言文化学院"),"score"])) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="亚非语学院"),"score"])) View(each(max,min,median,mean,sd,quantile,IQR)(cet201712[which(cet201712$cettype=="CET4" & cet201712$school=="国际交流学院"),"score"])) # 数据聚合 # https://blog.csdn.net/G090909/article/details/50769701 group_by(cet201712, school) %>% summarize_each(funs(mean),score) View(group_by(cet201712, school) %>% summarize_each(funs(mean),score)) group_by(cet201712[which(cet201712$cettype=="CET4"),], grade) %>% summarize_each(funs(mean),score) Temp4<-group_by(cet201712[which(cet201712$cettype=="CET4"),], grade) %>% summarize_each(funs(mean),score) class(Temp4) names(Temp4)<-c("年级","四级平均分") View(Temp4) Temp6<-group_by(cet201712[which(cet201712$cettype=="CET6"),], grade) %>% summarize_each(funs(mean),score) Temp6 names(Temp6)<-c("年级","六级平均分") View(Temp6) table(cet201712[which(cet201712$cettype=="CET4"),]$grade) table(cet201712[which(cet201712$cettype=="CET6"),]$grade) table(cet201712[which(cet201712$cettype=="CET4"),]$lantype) View(table(cet201712[which(cet201712$cettype=="CET4"),]$lantype)) View(table(cet201712[which(cet201712$cettype=="CET6"),]$lantype)) View(cet201712[which(cet201712$cettype=="CET6" & cet201712$grade==17),c("stuid","firstyear","grade","school","class","score")]) aggregate(cet201712[which(cet201712$cettype=="CET4"),"score"],list(cet201712[which(cet201712$cettype=="CET4"),]$grade),mean) aggregate(cet201712[,"score"],list(cet201712$school),mean) View(aggregate(cet201712[,"score"],list(cet201712$school),mean)) View(aggregate(cet201712[cet201712$cettype=="CET4","score"],list(cet201712[cet201712$cettype=="CET4","school"]),mean)) View(arrange(aggregate(cet201712[cet201712$cettype=="CET4","score"],list(cet201712[cet201712$cettype=="CET4","school"]),mean),desc(x))) View(arrange(aggregate(cet201712[cet201712$cettype=="CET4","score"],list(cet201712[cet201712$cettype=="CET4","school"]),median),desc(x))) Temp4<-arrange(aggregate(cet201712[cet201712$cettype=="CET4","score"],list(cet201712[cet201712$cettype=="CET4","school"]),mean),desc(x)) Temp6<-arrange(aggregate(cet201712[cet201712$cettype=="CET6","score"],list(cet201712[cet201712$cettype=="CET6","school"]),mean),desc(x)) Temp4 names(Temp4)<-c("学院","四级平均数") names(Temp6)<-c("学院","六级平均数") View(Temp4) View(Temp6) Temp4.lan<-arrange(aggregate(cet201712[cet201712$cettype=="CET4","score"],list(cet201712[cet201712$cettype=="CET4","lantype"]),mean),desc(x)) Temp6.lan<-arrange(aggregate(cet201712[cet201712$cettype=="CET6","score"],list(cet201712[cet201712$cettype=="CET6","lantype"]),mean),desc(x)) Temp4.lan names(Temp4.lan)<-c("语种","四级平均数") names(Temp6.lan)<-c("语种","六级平均数") dim(Temp4.lan) dim(Temp6.lan) View(Temp4.lan) View(Temp6.lan) write.csv(Temp4.lan,"Data/Tjfsu_CET4_201712.SortByLanguage.csv") write.csv(Temp6.lan,"Data/Tjfsu_CET6_201712.SortByLanguage.csv") # 数据集合并---行列合并 # 3个基本函数: # 合并列:merge、cbind # 合并行:rbind # http://blog.sina.com.cn/s/blog_72512a1d0102xq6b.html # 更强大的数据框整形工具reshape # merge函数合并列时需要指定数据集的共有变量 Temp<-merge(Temp4,Temp6,by="学院") Temp class(Temp) # 直接增加一列 Temp[,"四六级平均数"]<-(Temp[,"四级平均数"]+Temp[,"六级平均数"])/2 Temp<-arrange(Temp,desc(四级平均数+六级平均数)) Temp View(Temp) Temp.lan<-merge(Temp4.lan,Temp6.lan,by="语种") Temp.lan class(Temp.lan) # 直接增加一列 Temp.lan[,"四六级平均数"]<-(Temp.lan[,"四级平均数"]+Temp.lan[,"六级平均数"])/2 Temp.lan<-arrange(Temp.lan,desc(四级平均数+六级平均数)) dim(Temp.lan) Temp.lan View(Temp.lan)代码注释
10-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值