【问题标题】:How to replace Missing Value with Mode [duplicate]如何用模式替换缺失值[重复]
【发布时间】:2021-05-13 07:32:46
【问题描述】:
data <- c("SW",  "E",   "N",   "WNW", "SSE", "SE",  "SE",  "SE",  "E",   "S",   "SE",  "E",   "S",  
 "WNW", "S",   "SE",  "WSW","SW", "NNE","NNW","N",  "ENE","S",  NA ,"SSE","E", 
 "E",  "S",  "SE", "SSW","E",  "E",  "WNW","NW", "ESE","ESE","NW", "E",  NA)

我是 R 新手。此属性中有一些缺失值。我想用模式插补替换它们。我应该怎么办?感谢您的帮助!

【问题讨论】:

  • 数据集中的 NA 不是真正的 NA,因为它们属于字符类型。因此,首先您需要将它们转换为实际的 NA。 Rstudio 标签被移除,因为与 IDE 无关。
  • 您假设哪种模型可以让您估算数据?您似乎没有其他信息可以用来很好地猜测该值可能是什么。

标签: r missing-data


【解决方案1】:

this answer 为基础:

data <- c("SW",  "E",   "N",   "WNW", "SSE", "SE",  "SE",  "SE",  "E",   "S",   "SE",  "E",   "S",  
 "WNW", "S",   "SE",  "WSW","SW", "NNE","NNW","N",  "ENE","S",  NA ,"SSE","E", 
 "E",  "S",  "SE", "SSW","E",  "E",  "WNW","NW", "ESE","ESE","NW", "E",  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" 

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 2019-02-18
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    相关资源
    最近更新 更多