r - `sum` 返回 NA 的经典案例,因为它不求和 NA

标签 r

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




我正在尝试使用 sum在函数中,但结果为 NA ,我认为这可能是由于整数溢出。但我使用的数字类别是数字。

功能最简单

sum((columnA-columnB)^2)

列 A 中的值是 0.1376146从B列是0.272
是小数位的长度不同吗?我知道如何更改显示的内容,但我不确定这会改变 R 用于 sum 的内容.

最佳答案

按照 Joshua Ulrich 的评论,在说您有一些溢出问题之前,您应该回答以下问题:

  • 你总结了多少个元素? R 可以处理大量条目
  • 您的向量中的值有多大?同样,R 可以处理相当大的数字
  • 你是对整数求和还是对浮点数求和?如果要对浮点数求和,则 不能有整数溢出(浮点数不是整数)
  • 你有NA s 在您的数据中吗?如果您将任何内容与 NA 相加存在,结果将是 NA ,除非你处理得当。

  • 也就是说,一些解决方案:
  • 使用sum(..., na.rm=T)忽略 NA s 来自您的对象(这是简单的解决方案)
  • 仅求和非 NA条目:sum(yourVector[!is.na(yourVector)] (不那么简单的)
  • 如果要对数据框中的列求和,请在求和之前对数据框进行子集化:sum(subset(yourDataFrame, !is.na(columnToSum))[columnToSum]) (这就像用大炮杀死蚊子一样)
  • 关于r - `sum` 返回 NA 的经典案例,因为它不求和 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24232577/

    相关文章:

    r - 省略列表中所有 data.frames 中不共享公共(public) ID 的行

    r - 为同一ggplot中使用的不同data.frame手动添加其他图例

    python - 安装rpy2时遇到错误: Tried to guess R's HOME but no R command in the PATH

    r - 在 R 中对数据框进行双重循环(使用 Levenshtein Dist 相互比较行)的最智能方法?

    r - 在全局环境 R 中初始化函数参数

    r - R 中的对数标度图

    R包格不见了?

    r - 在 R 中构建正交向量的最简单方法

    R:gsub,模式=向量,替换=向量

    用平滑样条替换所有 NA