如何绘制包含R中缺失值的向量的密度曲线?

时间:2018-10-29 17:41:24

标签: r

我有一个带有一些NA值(缺失值)的数据集。

由于我需要从这些数据绘制一些密度曲线,因此创建了以下函数:

plotDistribution = function (x) {
    N = length(x)
    hist( x,col = "light blue",
          probability = TRUE)
    lines(density(x), col = "red", lwd = 3)
    rug(x)
}

如果x没有缺失值,它就可以正常工作,但是因为我的数据确实包含缺失值,所以我收到以下消息: density.default(x)的错误:'x'包含缺失值

我的问题是:如何在数据集中绘制非缺失值的密度曲线?如何忽略NA并绘制曲线,好像它们不存在一样?

2 个答案:

答案 0 :(得分:2)

您可以只在函数中获取x的非缺失值,例如:

plotDistribution = function (x) {
  NoMissing <- x[!is.na(x)]
  N = length(NoMissing)
  hist( NoMissing,col = "light blue",
        probability = TRUE)
  lines(density(NoMissing), col = "red", lwd = 3)
  rug(NoMissing)
}

答案 1 :(得分:1)

仅添加na.omit()即可工作

plotDistribution = function (x) {
  N = length(x)
  x <- na.omit(x)
  hist( x,col = "light blue",
        probability = TRUE)
  lines(density(x), col = "red", lwd = 3)
  rug(x)
  print(N-length(x))
}

此功能在许多情况下可以隐藏数据错误,因此我添加了一行打印省略值的数量。