簡體   English   中英

用 NA 替換不需要的因子水平值

[英]Replace unwanted values of factor level with NA

我有一個包含空白缺失值和 NA 的大型數據框。 執行 summary(factor(df$col)) 給我類似的東西

A  
123  
B  
50000  

90000  
C  
26000
NA's  
12476  

(注意50000之后的空白。)
sum(is.na(df$col))是 12476,與NA的數量相同,但我希望它是空白和NA的總和。
我試圖通過做來為空白創建一個級別
levels(df$col) <- c("A", "B", "Blank", "C")
然后嘗試df$col <- factor(df$col, exclude="Blank")它說生成了NA但我的 output 是相同的。 有誰知道如何根據因子級別創建 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM