我的第一种方法是在从csv文件中读取数据时使用na.strings=""
。出于某种原因,这并没有起到作用。我还尝试过:
df[df==''] <- NA
这给了我一个错误:无法使用矩阵或数组进行列索引。
我尝试只选择该列:
df$col[df$col==''] <- NA
这将整个数据框中的每个值都转换为NA,即使除了空字符串之外还有其他值。
然后我尝试使用mutate_all
:
replace.empty <- function(a) {
a[a==""] <- NA
}
#dplyr pipe
df %>% mutate_all(funs(replace.empty))
这也会将整个数据框中的每个值都转换为NA。
我怀疑我的“空”字符串有些奇怪,因为第一种方法没有效果,但我无法弄清楚是什么问题。
编辑(根据MKR的请求)dput(head(df))
的输出:
structure(c("function (x, df1, df2, ncp, log = FALSE) ", "{",
" if (missing(ncp)) ", " .Call(C_df, x, df1, df2, log)",
" else .Call(C_dnf, x, df1, df2, ncp, log)", "}"), .Dim = c(6L,
1L), .Dimnames = list(c("1", "2", "3", "4", "5", "6"), ""), class =
"noquote")
df[df==''] <- NA
对于 OP 没有起作用。 - MKRstr(df)
。 - moodymudskipperdput(head(df))
的输出。 - MKR