【问题标题】:Combining two data frames in R using the Stack() function使用 Stack() 函数在 R 中组合两个数据帧
【发布时间】: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 的提醒

标签: r dataframe stack


【解决方案1】:

是的,确实,这些是警告消息,这是由于必须扩展第一个数据集的因子级别以适应两个数据帧的值。有一次,我使两个数据框的所有列的因子水平相同,Stack() 函数工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-19
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    相关资源
    最近更新 更多