我有一个包含空白缺失值和NA的大型数据框。执行摘要(因子(df$col))给我的东西像
A
123
B
50000
90000
C
26000
NA's
12476
(请注意50000
后面的空白。sum(is.na(df$col))
是 12476,与 NA
的数量相同,但我希望它是空白和NA
s 的总和。
我试图通过做levels(df$col) <- c("A", "B", "Blank", "C")
然后尝试df$col <- factor(df$col, exclude="Blank")
,它说NA
已经生成,但我的输出是相同的。有谁知道如何根据因子水平创建 NA 或有更好的解决方案来替换缺失值?我认为问题可能是空白是不止一个空格字符,所以它们没有变成NA
的,但我不知道如何确认这一点。
试试这个:
df <- data.frame(a=11:18, col=c("C", "", "A", NA, "A", "", "C", NA))
levels(df$col) # "" "A" "C"
sum(is.na(df$col)) # 2
df$col <- factor(df$col, levels=LETTERS[1:3])
levels(df$col) # "A" "B" "C"
sum(is.na(df$col)) # 4
由于新级别不包含空白 ("),因此所有空白都将变为 NA。