首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rbind函数对三个数据库进行Rbind

使用rbind函数对三个数据库进行Rbind
EN

Stack Overflow用户
提问于 2021-07-13 19:27:28
回答 2查看 38关注 0票数 0

我知道这是一个新手问题,我有这3个xlsx文件和3个相同14个变量的三个数据库,这是一个横截面数据面板,我想要的是将它们连接到一个名为eplt的数据库中,首先,我导入它们

代码语言:javascript
复制
library(dplyr)
library(ggplot2)
library(xlsx)
##Import the three data bases

epl_data<-read.xlsx("Notes_ETAB2016-2017.xlsx",sheetIndex = 1,header = TRUE)
epl_data2<-read.xlsx("Notes_ETAB2017-2018.xlsx",sheetIndex = 1,header = TRUE)
epl_data3<-read.xlsx("Notes_ETAB2018-2019.xlsx",sheetIndex = 1,header = TRUE)
## to render the number of rows in each of them
nrow(epl_data)
nrow(epl_data2)
nrow(epl_data3)
# I want to rbind the three sets together  

eplt<-rbind(epl_data,epl_data2,epl_data3)

总行数是29441,但是当应用Rbind将它们绑定在一起时,我得到了错误

代码语言:javascript
复制
> eplt<-rbind(epl_data,epl_data2,epl_data3)
Error in match.names(clabs, names(xi)) : 
  names do not match previous names

但这3个集合中的变量名称是相同的

有人能帮帮忙吗,我只想重新绑定25000个观察值,剩下的4441个,让它与多元回归模型的可预测obs进行比较,提前谢谢

EN

回答 2

Stack Overflow用户

发布于 2021-07-13 19:46:06

第三个数据帧与前两个数据帧的名称不同: Svt不是大写的。

一种方法是将一个数据帧的名称应用于其他数据帧:

代码语言:javascript
复制
colnames(epl_data2) <- colnames(epl_data)
colnames(epl_data3) <- colnames(epl_data)

但是,只要您的数据来自janitor文件,我就推荐使用这个包。事实上,存在变量名问题是很常见的。此程序包可确保数据列名的良好格式:

代码语言:javascript
复制
epl_data <- janitor::clean_names(epl_data)
epl_data2 <- janitor::clean_names(epl_data2)
epl_data3 <- janitor::clean_names(epl_data3)

因此,rbind应该可以工作

票数 1
EN

Stack Overflow用户

发布于 2021-07-13 20:09:26

如前所述,变量名'SVT'不匹配。这里有一种替代方法,可以使列名小写,并将它们绑定在一个数据帧中。

代码语言:javascript
复制
library(dplyr)
library(purrr)

eplt <- list.files(pattern = 'Notes_ETAB2016-\\d+\\.xlsx') %>%
  map_df(~readxl::read_excel(.x) %>% rename_with(~tolower(.)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68361510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档