【发布时间】:2018-02-19 08:32:02
【问题描述】:
我必须将两个大数据帧 df1 和 df2 合并到 R 中的一个数据帧。 rbind() 函数的计算量很大。 Stack() 函数更适合用于大型数据集,因此我使用 Stack() 函数将数据帧一个接一个地堆叠以形成一个数据帧,如下所示:
library(Stack)
a = Stack (df1, df2)
但是,我收到以下错误:
1: ‘V1’: coerced to ordered factor
2: ‘V1’: factor levels expanded: check levels/codes!
3: ‘V13’: coerced to ordered factor
4: ‘V13’: factor levels expanded: check levels/codes!
5: ‘V14’: coerced to ordered factor
6: ‘V14’: factor levels expanded: check levels/codes!
7: ‘V15’: coerced to ordered factor
8: ‘V15’: factor levels expanded: check levels/codes!
9: ‘V16’: factor levels expanded: check levels/codes!
df1 和 df2 data.frame 的类以及两个数据帧具有相同的列名和列数。为什么我仍然收到此错误?
【问题讨论】:
-
你收到的是
error还是warning message? -
听起来像
V1/V13/V14/V15是两个数据帧中的因子,但值的范围不同。组合时,必须扩展因子水平以容纳来自两个数据框的值。此外,根据 akrun 的评论,这些应该是警告消息而不是错误。 -
不是您的问题的答案,但您是否尝试过
library(data.table); setDT(df1); setDT(df2); rbind(df1, df2)以获得性能? -
谢谢@Z.Lin 的提醒