有没有办法更有效地编写此代码?
for (k in 1:ncol(tr)){
temp=tr[[k]]
temp[is.na(temp)] = mean(temp[!is.na(temp)])
tr[[k]]=temp
}
答案 0 :(得分:1)
要替换矩阵或数据帧的for循环,apply
通常是一个好主意:
apply(tr, 1, function(temp) {temp[is.na(temp)] <- mean(temp, na.rm=TRUE); temp})
有关apply
的更多信息 - 类似函数here。
答案 1 :(得分:0)
sapply(tr, function(x) {
x[is.na(x)] <- mean(x, na.rm=TRUE)
return(x)
})