2016-02-08 45 views
0

我有一個包含一年中12個月的列表X.在我的數據中,我有一個列Y,它具有以下級別:「完成」,「未完成」和「」。我想用「未知」字符串替換「」。在R中用字符串「未知」替換NA值

我想:

for (i in 1:length(X)) { 
    X[[i]]$Y[which(is.na(X[[i]]$Y))] == "Unknown" 
} 

我得到的錯誤:

"Error: unexpected input in " PList15[[i]]$IB.Opportunity.Type[which(is.na(PList15[[i]]$IB.Opportunity))] == "Unknown"

+0

請提供一個可重現的例子,顯示所需的結果。 –

+0

爲什麼不簡單X [is.na(X)] < - 「未知」.. – user5249203

回答

1

你並不需要爲這個循環,你可以不喜歡它:

# Some data with `""` 
v <- 1:10 
v[c(3,5,8)] <- "" 
v 
[1] "1" "2" "" "4" "" "6" "7" "" "9" "10" 


v[v == ""] <- "Unknown" 

[1] "1"  "2"  "Unknown" "4"  "Unknown" "6"  "7"  "Unknown" "9"  "10" 
+0

感謝您的代碼,但是我需要一個循環,因爲我有12個月在列表X?如果我寫:X [[i]] $ Y [X [[i]] $ Y ==「」] =「未知」 –

+0

請提供可複製的示例,然後我們可以嘗試找到解決方案 – DatamineR

1

由於Y是一個因素,你可以這樣做:

levels(X$Y)[levels(X$Y)==""] <- "unknown"