【发布时间】:2012-03-16 23:54:01
【问题描述】:
我今天发现了一些奇怪的东西,我想问你我所看到的是否有合理的原因,或者你是否认为这是一个应该报告给 R-devel 团队的错误:
df <- data.frame(a = 1L:10L)
class(df$a)
# [1] "integer"
m <- as.matrix(df)
class(m[, "a"])
# [1] "integer"
到目前为止不足为奇:as.matrix 保留数据模式,这里是“整数”。但是,使用空(无行)data.frame:
df <- data.frame(a = integer(0))
class(df$a)
# [1] "integer"
m <- as.matrix(df)
class(m[, "a"])
# [1] "logical"
知道为什么这里的模式从“整数”变为“逻辑”吗?我使用的是 2.13.1 版
谢谢。
【问题讨论】:
-
不知道为什么会发生这种情况,但您最好在发布到 R-devel 之前在最新的快照上对其进行测试。他们不喜欢 6 个月大的 R 版本的“错误报告”。
-
我在这里得到相同的行为,R 版本 2.14.1 (2011-12-22)。
-
我在 2.14.2 看到了同样的事情
标签: r type-conversion