【发布时间】:2016-11-29 16:28:33
【问题描述】:
当我使用以下data.frame时
dataSet <- structure(list(J1 = "foo", J2 = structure(0.1, .Dim = c(1L, 1L
))), .Names = c("J1", "J2"), row.names = 1L, class = "data.frame")
然后
print(colnames(dataSet))
返回
[1] "J1" "J2"
正如预期的那样。
然而,
r <- is.na(dataSet)
print(colnames(r))
返回
[1] "J1" ""
为什么会这样?我以这种奇怪的方式创建了 data.frame,因为在将真实的 data.frame 压缩为最小的工作示例之后,我使用 dput() 创建了代码。我正在使用的一个函数依赖于这样一个假设,即 colnames 由 is.na 保持完整,这似乎适用于大多数 data.frames 但不适用于这个。
【问题讨论】:
-
解决办法可以先转换
dataSet[] <- lapply(dataSet, as.vector)
标签: r