【问题标题】:NA Remove to calculationNA 删除计算
【发布时间】:2020-02-15 06:13:57
【问题描述】:

我的 NA 值有一些问题,因为我的 excel 数据集的列号不同,所以它显示 NA。 RInSp包中计算相似度指数函数Psicalc时,删除了所有包含NA值的行。

B   F
4   7
5   6
6   8
7   5
NA  4
NA  3
NA  2

您知道如何处理 NA 或将其删除但不删除所有行或不影响打包吗?除了当我 import.RinSP 它有消息 在 if (class(filename) == "character") { : 条件的长度 > 1 并且只使用第一个元素 非常感谢

【问题讨论】:

  • 请显示你调用的函数,显示实际代码。某些功能(例如sum(), mean() 等)具有适用于 NA 的开关,而另一些则没有。
  • 对于后者(没有na.rm=的函数),您可以在其他函数中使用na.omit(x);当然,这取决于您的计算、您的假设以及您希望对数据缺失的鲁棒性有多大的规定。 (例如,当非NA 观察值为零时,某些函数的性能会很差。)
  • @smci 我想做 RInSp 包来计算相似度指数 (Psicalc)。
  • 嘿@PhanCôngthẮng,我看了看包裹.. 所以如果有 NA 你不能计算成对距离。如果 NA 表示零,例如零检测(你必须知道这一点!!!),那么如果你的数据框是 df,df[!is.na(df)] = 0
  • 嗨@StupidWolf,非常感谢。我的数据集中的 NA 表示空白单元格。 B 列只有 4 行,所以这就是 NA 出现的原因。

标签: r na missing-data


【解决方案1】:

许多 R 函数(特别是基本 R )都有一个 na.rm 参数,默认情况下为 FALSE。这意味着如果您省略此参数,并且您的数据有 NA,那么您的“计算”将导致 NA。要在计算中删除这些,请包含 na.rm 参数并将其分配给 TRUE。

例子:

x <- c(4,5,6,7,NA,NA)
mean(x)  # Oops!
[1] NA

mean(x, na.rm=TRUE)
[1] 5.5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 2023-04-08
    • 2019-08-01
    • 1970-01-01
    相关资源
    最近更新 更多