【发布时间】:2014-01-20 11:51:26
【问题描述】:
第一个谜团是为什么 csv 文件中包含空单元格的字符向量不包含 NA。相反,它们显示为“”。试过例如read.csv(file, na.strings = ""),但是失败了。
无论如何,问题是为什么这个函数会返回错误,而它在函数之外工作。
clean.data <- function(dta, col) {
dta$col[dta$col == ""] <- NA # set empty cells to missing
}
明显有问题,但我看不到。
Error in `$<-.data.frame`(`*tmp*`, "col", value = logical(0)) :
replacement has 0 rows, data has 20692
【问题讨论】:
-
使用
dta[dta[, col] == "", col] <- NA -
啊,为什么?顺便说一句,它有效。
-
因为
$不适合这样的编程使用。您不能将字符传递给它以进行列选择。 -
@Roland 我可以问一下这是否也适用于函数?尝试使用
replace.empty <- function(dta, col) { dta[dta[, col] == "", col] <- NA }但无法正常工作。 -
你的函数需要返回一些东西。试试
function(dta, col) { dta[dta[, col] == "", col] <- NA; dta }
标签: r function missing-data