【发布时间】:2021-10-26 09:21:39
【问题描述】:
这是代码的简化版本:
# Packages used
pkg <- c("tidyverse",
"synthpop"
)
tmp1 <- read_csv2(file1)
tmp2 <- read_csv2(file2)
tmp <- tmp1 %>%
left_join(tmp2)
我遇到的问题是 na 的值和文本 NA 值(来自 csv 文件)。为了解决这个问题,我用实际的 na 替换了文本 NA,见下文。
# replacing textual "NA"'s with actual na's that are regonized by R
tmp <- na_if(tmp, "NA")
但是在运行时:
summary(tmp["Region"])
输出:
Region
North:19342
West :91234
East :48001
South:43347
NA : 0
NA's :12276
它仍然将文本 NA 显示为一个类别,尽管计数为 0(它对 tmp 中的所有变量都这样做)。因此,在我的代码后面,我遇到了问题。我希望文本 NA 不再存在(它不是关于输出,而是关于 NA 作为一个因素的实际存在,我稍后合成数据集,NA 和 NA 不应该被视为两个单独的可能性) .
有什么替代或补充:tmp <- na_if(tmp, "NA"),以免出现此问题?我希望你能帮助我!
【问题讨论】:
-
为了提供帮助,我们确实需要查看您的数据。请提供来自
dput(tmp)或dput(head(tmp))的输出。 -
区域是否为
factor,级别为“NA”?summary(droplevels(tmp["Region"]))会发生什么 -
很遗憾,由于法规,我无法显示任何数据。
-
很遗憾,droplevels 不起作用,因为它与摘要输出无关。输出仅表明 NA 仍然是与 NA 不同的类别,这会在以后带来问题。
-
您是如何使用
droplevels的?尝试tmp <- droplevels(tmp),然后执行summary(tmp["Region"])。这给了你什么?