我有一个数据帧和一些列有NA值。
我如何将这些NA值替换为零?
我有一个数据帧和一些列有NA值。
我如何将这些NA值替换为零?
当前回答
取代。数据帧中的na和NULL。
带列的数据帧
A name(美元是na (A name) < 0美元。
OR
A $ name[是na (A $ name) < - " na "
所有数据帧
自由度[is.na(DF)]<-0
将数据帧中的na替换为空白
df[is.na(df)]<-“”
将NULL替换为NA
df[is.null(df)] <- NA
其他回答
这个从Datacamp中提取的简单函数可以帮助:
replace_missings <- function(x, replacement) {
is_miss <- is.na(x)
x[is_miss] <- replacement
message(sum(is_miss), " missings replaced by the value ", replacement)
x
}
Then
replace_missings(df, replacement = 0)
如果我们试图在导出时替换NAs,例如写入csv时,那么我们可以使用:
write.csv(data, "data.csv", na = "0")
你可以使用replace()
例如:
> x <- c(-1,0,1,0,NA,0,1,1)
> x1 <- replace(x,5,1)
> x1
[1] -1 0 1 0 1 0 1 1
> x1 <- replace(x,5,mean(x,na.rm=T))
> x1
[1] -1.00 0.00 1.00 0.00 0.29 0.00 1.00 1.00
取代。数据帧中的na和NULL。
带列的数据帧
A name(美元是na (A name) < 0美元。
OR
A $ name[是na (A $ name) < - " na "
所有数据帧
自由度[is.na(DF)]<-0
将数据帧中的na替换为空白
df[is.na(df)]<-“”
将NULL替换为NA
df[is.null(df)] <- NA
如果你想在因子变量中替换NAs,这可能是有用的:
n <- length(levels(data.vector))+1
data.vector <- as.numeric(data.vector)
data.vector[is.na(data.vector)] <- n
data.vector <- as.factor(data.vector)
levels(data.vector) <- c("level1","level2",...,"leveln", "NAlevel")
它将因子向量转换为数值向量,并添加另一个人工数值因子水平,然后将其转换回具有您选择的额外“na水平”的因子向量。