我有一个包含条目的数据框;看来这些值没有被视为 NA,因为 is.na 返回 FALSE。我想将这些值转换为 NA 但找不到方法。
我使用了相同的方法将 NA 替换为空格或其他字符,但由于某种原因,这个方法不起作用。我想将数据框中的 NA 替换为空白(年份和年度列)。我究竟做错了什么?
shad.92 <- structure(list(year = c(1992, NA, NA, NA, NA), type = c("all age abundance index",
"adjusted number of fish older than age 0 measured", "adjusted total number of fish measured",
"percent YOY", "YOY abundance index"), September = c(755, 0,
565, 100, 755), October = c(530, 0, 434, 100, 530), November = c(463,
0, 338, 100, 463), December = c(266, 1, 136, 99.3, 264), Annual = c(2014,
NA, NA, NA, 2012)), row.names = c(NA, -5L), class …Run Code Online (Sandbox Code Playgroud) 我有这个虚拟数据集:
abc <- data.table(a = c("NA", "bc", "x"), b = c(1, 2, 3), c = c("n", "NA", "NA"))
Run Code Online (Sandbox Code Playgroud)
我试图用标准NA替换"NA"; 使用data.table到位.我试过了:
for(i in names(abc)) (abc[which(abc[[i]] == "NA"), i := NA])
for(i in names(abc)) (abc[which(abc[[i]] == "NA"), i := NA_character_])
for(i in names(abc)) (set(abc, which(abc[[i]] == "NA"), i, NA))
Run Code Online (Sandbox Code Playgroud)
但仍然有这个我得到:
abc$a
"NA" "bc" "x"
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
编辑:我在这个问题中尝试了@frank的答案type.convert().(谢谢坦率;不知道这种模糊但有用的功能)在文档中type.convert()提到:"这主要是read.table的辅助函数." 所以我想彻底测试一下.当您有一个填充"NA"(NA字符串)的完整列时,此功能会产生较小的副作用.在这种情况下type.convert(),将列转换为逻辑列.对于这种情况abc将是:
abc <- data.table(a = c("NA", "bc", "x"), b = c(1, 2, 3), c = c("n", "NA", …Run Code Online (Sandbox Code Playgroud)