首页 > 解决方案 > rbind 包含“double”和“charater”的行

问题描述

我正在尝试将几个具有相同列标题的 Excel 工作表导入一个大数据框中。我可以使用此代码导入所有文件,但是当涉及到 bind_rows 时,它会失败。

当我运行代码时,出现此错误:

错误:无法组合..1$mxtotpr <double> 和..37$mxtotpr<character> 。

df <- list.files(full.names = TRUE) %>% 
  lapply(read_excel) %>% 
  bind_rows

由于缺少数据,我的 mxtotpr 列包含很多空行,这是导致问题的原因吗?

如何将所有文件组合成一个大数据框?

标签: rdataframerbind

解决方案


您的列是不同的格式,例如:

df1=data.frame(A=c('a','b'),B=c(1/2,1/3))
df2=data.frame(A=c('c','d'),B=c('e','f'))
bind_rows(df1,df2)

错误:无法组合..1$B..2$B

一种解决方法是将有问题的列转换为字符,例如:

df1a = data.frame(A=c('a','b'), B=as.character(c(1/2,1/3)))
df_combined = bind_rows(df1a,df2)

结果:

df_combined

  A                 B
1 a               0.5
2 b 0.333333333333333
3 c                 e
4 d                 f

但是,正如@Bloxx 所建议的那样,您最好了解数据的外观以及通过该read_excel()函数导入数据时发生的情况。


推荐阅读