3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
一個(gè)更友好的解決方案dplyr是
require(dplyr)
## fake blank cells
iris[1,1]=""
## define a helper function
empty_as_na <- function(x){
if("factor" %in% class(x)) x <- as.character(x) ## since ifelse wont work with factors
ifelse(as.character(x)!="", x, NA)
}
## transform all columns
iris %>% mutate_each(funs(empty_as_na))
要將更正僅應(yīng)用于部分列,您可以使用dplyr的列匹配語(yǔ)法指定感興趣的列。例:mutate_each(funs(empty_as_na), matches("Width"), Species)
如果表格中包含日期,則應(yīng)考慮使用類(lèi)型更安全的ifelse

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
我最近遇到了類(lèi)似的問(wèn)題。這就是對(duì)我有用的方法,如果變量是數(shù)字,那么簡(jiǎn)單df$Var[df$Var == ""] <- "NA"就足夠了。但是,如果變量是一個(gè)因數(shù),則需要先將其轉(zhuǎn)換為字符,然后""用所需的值替換單元格,然后將其轉(zhuǎn)換回因數(shù)。因此,例如,您的Sex變量,我認(rèn)為這是一個(gè)因素,如果您要替換空單元格,我將執(zhí)行以下操作:
df$Var <- as.character(df$Var)
df$Var[df$Var==""] <- "NA"
df$Var <- as.factor(df$Var)
- 3 回答
- 0 關(guān)注
- 2563 瀏覽
添加回答
舉報(bào)