【发布时间】:2013-07-15 11:46:03
【问题描述】:
据我所见here 我会假设 data.table v1.8.0+ 不会自动将字符串转换为因子。
具体来说,引用该页面中的 Matthew Dowle:
不需要字符串AsFactors。在 v1.8.0 中这样做: o 字符列现在允许在键中使用,并且优先考虑。 data.table() 和 setkey() 不再强制字符为因子。仍支持因子。
我没有看到...这是我的 R 会话记录:
首先,我确保我有足够新的 data.table > 1.8.0 版本
> library(data.table)
data.table 1.8.8 For help type: help("data.table")
接下来,我创建一个 2x2 的 data.table。请注意,它会产生因子...
> m <- matrix(letters[1:4], ncol=2)
> str(data.table(m))
Classes ‘data.table’ and 'data.frame': 2 obs. of 2 variables:
$ V1: Factor w/ 2 levels "a","b": 1 2
$ V2: Factor w/ 2 levels "c","d": 1 2
- attr(*, ".internal.selfref")=<externalptr>
当我在 data.frame() 中使用 stringsAsFactors 然后调用 data.table() 时,一切都很好......
> str(data.table(data.frame(m, stringsAsFactors=FALSE)))
Classes ‘data.table’ and 'data.frame': 2 obs. of 2 variables:
$ X1: chr "a" "b"
$ X2: chr "c" "d"
- attr(*, ".internal.selfref")=<externalptr>
我错过了什么? data.frame() 是否应该将字符串转换为因子,如果是,是否有“更好的方法”来关闭该行为?
谢谢!
【问题讨论】:
标签: r data.table