【问题标题】:adding rows to data.frame with mixed data format使用混合数据格式向 data.frame 添加行
【发布时间】:2014-02-04 13:34:24
【问题描述】:

我有一个包含混合值的表,包括字符串和数值。我选择使用data.frame 来存储它。但是,我在向数据框中添加额外的行时遇到了严重的困难。 invalid factor level, NA generated 等错误消息不断出现。

除了使用 data.frame 之外,还有什么数据结构可以帮助避免invalid factor level, NA generated 的问题,同时仍然支持混合数据格式?

【问题讨论】:

标签: r dataframe


【解决方案1】:

data.frame(或data.table)很可能是您正在寻找的数据结构。

说白了:为了添加“新行”,每个新元素都需要确认与其列相关的任何限制。大多数情况下,这意味着属于同一类。

如果您将元素添加到因子列(如您收到的错误所示),则还有一个额外要求,即新值也必须是该因子的水平。 (更多信息请参见?factor

如果有人故意使用因素,那么上面是一件好事。但是,如果有一个列被无意中强制转换为一个因素,那么上面就是一个 P.I.T.A.

不幸的是,大多数生成 data.frames 的函数的默认值是stringsAsFactors=TRUE。恕我直言,这很烦人。但是你所要做的就是关闭那个标志,你应该被设置。

【讨论】:

  • 我试过 x
  • @user288609 - 试试read.csv("x.csv", stringsAsFactors=FALSE)
  • 如何添加该添加行的最佳方式。我试过像 temprow
  • 类似:dat <- rbind(dat, c("abc",rep("",10))) 也许。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 2017-07-09
  • 1970-01-01
  • 2013-11-21
  • 2013-07-02
  • 2020-10-30
  • 1970-01-01
相关资源
最近更新 更多