【问题标题】:rbind three data bases using Rbind function使用 rbind 函数 rbind 三个数据库
【发布时间】:2021-09-22 10:55:09
【问题描述】:

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

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 将它们绑定在一起时,我得到了错误

> 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 进行比较, 提前致谢

【问题讨论】:

  • 能否提供所有三个数据框的变量名称?
  • 好的,我会编辑帖子,谢谢
  • 另外,我鼓励您在从 Excel 导入数据时使用janitor::clean_names(data)。通过使变量名标准化,它可以很好地处理导入excel文件时的变量名问题
  • 需要什么dplyrggplot2 函数?
  • @user2161721 epl_data3 &lt;- epl_data3 %&gt;% rename(SVT = Svt)

标签: r merge concatenation rbind cbind


【解决方案1】:

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

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

colnames(epl_data2) <- colnames(epl_data)
colnames(epl_data3) <- colnames(epl_data)

但每当您的数据来自 Excel 文件时,我都会推荐使用包 janitor。事实上,变量名问题很常见。此包可确保您的数据列名称格式正确:

epl_data <- janitor::clean_names(epl_data)
epl_data2 <- janitor::clean_names(epl_data2)
epl_data3 <- janitor::clean_names(epl_data3)

因此,rbind 应该可以工作

【讨论】:

  • 谢谢它的工作,但我需要减少 4000 obs,这意味着我想将第 2 个第 5588 行从第三个连接起来,省去 4000 个 obs,你能帮我谢谢
  • 表示要保留前5588行和第三行:rbind(epl_data, epl_data2, epl_data3 %&gt;% slice_head(n = 5588)),如果要随机选择5588,请改用slice_sample(n=5588)
【解决方案2】:

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

library(dplyr)
library(purrr)

eplt <- list.files(pattern = 'Notes_ETAB2016-\\d+\\.xlsx') %>%
  map_df(~readxl::read_excel(.x) %>% rename_with(~tolower(.)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 2013-12-01
    • 1970-01-01
    • 2020-04-04
    • 2019-11-05
    • 2020-08-05
    相关资源
    最近更新 更多