r - 绑定(bind)具有不同数据类型的行

标签 r dplyr

我有一些数据框,每个数据框超过 3000 列,我想将它们绑定(bind)在一起。

当我使用时

library(dplyr)

bind_rows(dataframe1, dataframe2, dataframe3, dataframe4)

我收到很多警告:

In bind_rows_(x, .id) : Unequal factor levels: coercing to character
...

我猜这是因为一列在一个数据帧中包含因子类型的数据,在另一个数据帧中包含字符类型的数据。但我该如何解决这个问题呢?

我知道我可以使用

sapply(dataframe1, class)

获取数据帧的类,但由于列很多,不可能在所有 4 个数据帧中遍历所有类。

这似乎是数据的问题,但是某些东西具有类型因子是什么意思?是数字吗?

最佳答案

也许从?factor开始了解什么是因素。

要避免警告,您可以使用 supressWarnings,或者需要先转换为字符。例如(未经测试):

library(tidyverse)
l <- list(dataframe1, dataframe2, dataframe3, dataframe4)
map_dfr(l, ~mutate(., across(where(is.factor), as.character))

关于r - 绑定(bind)具有不同数据类型的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42491674/

相关文章:

R dplyr 不同函数不能使用 .keep_all = TRUE

r - 在 R 中将列表列的部分设置为 NULL

r - 如何反转RasterVis(Levelplot)的默认颜色?

r - 转换错误 - .subset2(x, i, 精确 = 精确) 中的错误

r - 为什么悲伤的文字是积极的?

r - 了解 dplyr group_by 与 tapply 之间的结果差异

r - Dplyr 多个管道动态变量?

r - 仅当特定百分比的数据可用时才使用 rollapply 计算平均值

r - 无需完全重新分配即可更改数据框中的列位置

r - R 中复合语句中的奇怪错误? : "target of assignment expands to non-language object"