【发布时间】:2019-05-12 03:54:42
【问题描述】:
我有一个包含许多不同类型列的数据框。我想用相应类的 NA 替换每一列。
例如:
df = data_frame(x = c(1,2,3), y = c("a", "b", "c"))
df[, 1:2] <- NA
生成具有两个逻辑列的数据框,而不是数字和字符。 我知道我可以告诉 R:
df[,1] = as.numeric(NA)
df[,2] = as.character(NA)
但是我如何在一个循环中对所有可能类型为 NA 的所有列集体执行此操作?
【问题讨论】:
-
好问题 +1,但为什么这很重要?
-
这是一个很奇怪的问题,我以后需要将数据框与另一个原始类型的框加入...
-
但是为什么呢?请给我们更多背景信息,这似乎是毫无意义(但很有趣)的一步。
-
我在程序开始时创建了一个数据框,有时需要根据条件获取某些列中的所有 NA。该数据框需要在程序结束时与另一个数据框连接,这可能无法获得这些 NA。为了使连接起作用,两个数据框需要具有完全相同类型的列。
-
只是一个小修正,你不应该在这里谈论类,而是谈论原子类型,使用
NA_character_和NA_numeric_比使用as.character(NA)和as.numeric(NA)更惯用。