我有一些数据框,每个数据框超过 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/