问题描述
data <- c("SW","E","N","WNW","SSE","SE","S","WSW","SW","NNE","NNW","ENE",NA,"SSW","NW","ESE",NA)
我是 R 的新手。此属性中存在一些缺失值。我想用模式插补替换它们。我应该怎么办?感谢您的帮助!
解决方法
以 this answer 为基础:
data <- c("SW","E","N","WNW","SSE","SE","S","WSW","SW","NNE","NNW","ENE",NA,"SSW","NW","ESE",NA)
Mode <- function(x) {
ux <- unique(x)
ux[which.max(tabulate(match(x,ux)))]
}
data[is.na(data)] <- Mode(data)
data
[1] "SW" "E" "N" "WNW" "SSE" "SE" "SE" "SE" "E" "S" "SE" "E" "S" "WNW" "S" "SE" "WSW" "SW" "NNE" "NNW" "N" "ENE" "S"
[24] "E" "SSE" "E" "E" "S" "SE" "SSW" "E" "E" "WNW" "NW" "ESE" "ESE" "NW" "E" "E"