我有一个相当简单的函数,其中包含一个 for 循环,将特定编码的缺失值转换为 NA:
make_na <- function(value, df){
for(thisvar in names(df)){
df[[thisvar]][df[[thisvar]] == value] <- NA
num_NA <- length(df[[thisvar]][is.na(df[[thisvar]])])
print(paste0(thisvar, " has ", num_NA, " NA's"))
}
return(df)
}
运行该函数可以正确打印修改后的数据框,但我不知道如何将数据框放回工作区。我也尝试new_dat <- return(df)
将数据框分配给一个对象,但那也不起作用。显然我遗漏了一些简单的东西。
我认为您可以尝试 df = make_na(value, df)。以下是一个例子。
这样,您就可以获得带有 NA 的数据框
我认为我们不需要明确的循环;尝试:
用覆盖
X
(在您的情况下df
)X = insertNA(X, 33)
。