是否可以跳过“+”运算符中的 NA 值?

2024-02-10

我想用 R 计算方程。我不想使用该函数sum因为它返回 1 值。我想要完整的值向量。

x = 1:10
y = c(21:29,NA)
x+y
 [1] 22 24 26 28 30 32 34 36 38 NA

x = 1:10
y = c(21:30)
x+y
 [1] 22 24 26 28 30 32 34 36 38 40

我不想要:

sum(x,y, na.rm = TRUE)
[1] 280

它不返回向量。

这是一个玩具示例,但我有一个更复杂的方程,使用长度为 84647 个元素的多个向量。

这是我的意思的另一个例子:

x = 1:10
y = c(21:29,NA)
z = 11:20
a = c(NA,NA,NA,30:36)
5 +2*(x+y-50)/(x+y+z+a) 
 [1]       NA       NA       NA 4.388889 4.473684 4.550000 4.619048 4.681818 4.739130       NA

Answer recommended by R Language /collectives/r-language Collective

1) %+%定义自定义 + 运算符:

`%+%` <- function(x, y)  mapply(sum, x, y, MoreArgs = list(na.rm = TRUE))
5 + 2 * (x %+% y - 50) / (x %+% y %+% z %+% a)

giving:

[1] 3.303030 3.555556 3.769231 4.388889 4.473684 4.550000 4.619048 4.681818
[9] 4.739130 3.787879

以下是一些简单的例子:

1 %+% 2
## [1] 3

NA %+% 2
## [1] 2

2 %+% NA
## [1] 2

NA %+% NA
## [1] 0

2) 纳2零另一种可能性是定义一个将 NA 映射到 0 的函数,如下所示:

na2zero <- function(x) ifelse(is.na(x), 0, x)

X <- na2zero(x)
Y <- na2zero(y)
Z <- na2zero(z)
A <- na2zero(a)

5 + 2 * (X + Y - 50) / (X + Y + Z + A)

giving:

[1] 3.303030 3.555556 3.769231 4.388889 4.473684 4.550000 4.619048 4.681818
[9] 4.739130 3.787879

3)结合上面将(1)与(2)中的想法相结合的变体是:

X <- x %+% 0
Y <- y %+% 0
Z <- z %+% 0
A <- a %+% 0

5 + 2 * (X + Y - 50) / (X + Y + Z + A)

4)数字0类我们可以定义一个自定义类"numeric0"有自己的 + 运算符:

as.numeric0 <- function(x) structure(x, class = "numeric0")
`+.numeric0` <- `%+%`

X <- as.numeric0(x)
Y <- as.numeric0(y)
Z <- as.numeric0(z)
A <- as.numeric0(a)

5 + 2 * (X + Y - 50) / (X + Y + Z + A)

Note:使用的输入是问题中的输入,即:

x = 1:10
y = c(21:29,NA)
z = 11:20
a = c(NA,NA,NA,30:36)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以跳过“+”运算符中的 NA 值? 的相关文章

  • R - 在浏览器中获取帮助而不是内置的 R 帮助程序

    我见过 R help 的两种不同行为 当你输入 density例如 帮助已在您的默认浏览器中打开 帮助在内置 R 帮助程序中打开 R 中的窗口 我目前有第二种行为 但我想在浏览器中打开帮助 我可以轻松地在这两种行为之间切换吗 无需重新安装
  • 在 R 中进行 Cox 回归后,将预测危险比列添加到数据帧中

    在 R 中运行 Cox PH 回归后 我需要在数据框中添加预测风险比的列 数据框是面板数据 其中 numgvkey 如果公司标识符 和年龄是时间标识符 您可以从此链接下载一小部分日期 https drive google com file
  • R - 正则表达式错误(PCRE 版本)

    我正在尝试使用koRpus在 R 中在运行 RHEL6 的 Linux 服务器上进行词形还原 上周 当我安装了 MRO Microsoft R Open 3 2 3 时 下面的代码效果很好 library koRpus lw c danci
  • 可以明确声明包依赖项的版本吗?

    我倾向于对我编写的代码进行明确而不是隐含的描述 因此 在成功创建自己的包之后 我立即想到的下一件事是如何最好地确保代码的健壮性和可靠性 其中一部分与我的包所依赖的包有关 实际问题 在这方面 是否可以明确声明需要 期望哪个版本的包依赖项 我正
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • R从列表中提取数据框,列名中没有前缀

    我在列表中放置了一个数据框 然后 当尝试将其提取回来时 我得到了该数据帧的所有以列表键为前缀的列名称 有没有办法完全按照最初传递的方式提取数据帧 cols lt c column1 Column2 Column3 df1 lt data f
  • R read_excel:libxls 错误:无法解析文件

    我试图使用 readxl read excel 将 xls 文件读入 R 但它给出了以下错误 Error filepath data xls libxls error Unable to parse file 还尝试了 readxl exc
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • dplyr,do(),从模型中提取参数而不丢失分组变量

    R 帮助中关于 do 的示例略有不同 by cyl lt group by mtcars cyl models lt by cyl gt do mod lm mpg disp data coefficients lt models gt d
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • R 中的字符串作为函数参数

    数据框chocolates列出了糖果的类型以及每种糖果的一组评级 ID sweetness filling crash snickers 0 67 0 55 0 40 milky way 0 81 0 53 0 56 我正在编写一个函数 它
  • ggplot散点图中的图例问题

    我想使用 ggplot 创建显示方法比较数据的散点图 绘图应包含原始数据 理想线和带误差的拟合线 图例应显示理想线和拟合线的线型 线宽 线颜色 我可以获得大部分我想要的东西 但是图例存在以下问题 图例显示每种线型有 2 条线 为什么 如何解
  • 如何在R中同时对三个字段进行网络分析

    如何在 R 中同时对三个字段进行网络分析 下面是示例数据以及desired output在最后一栏中 df lt data frame stringsAsFactors FALSE id 1 c ABC ABC BCD CDE DEF EF
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • 具有 dplyr、tidyverse 和 broom 的相关矩阵 - P 值矩阵

    全部 我想使用以下方法从相关矩阵中获取 p 值dplyr 和 或扫帚包 并同时测试多个变量 我知道其他方法 但 dplyr 对我来说似乎更简单 更直观 此外 dplyr 需要关联每个变量以获得特定的 p 值 这使得该过程更容易 更快 我检查
  • R 中的 Websocket

    我设法在 R 中建立到 Mtgox websocket 的连接 规格如下 url https socketio mtgox com mtgox Currency USD https socketio mtgox com mtgox Curr

随机推荐

  • 每个类型的表继承插入问题

    我跟着本文 http www robbagby com entity framework entity framework modeling table per type inheritance 为我的实体创建每个类型的表继承模型 但是当我
  • 如何在android中使用数据库? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在android中创建数据库 https stackoverflow com questions 2729438 how to create database in android 我是移动应用程
  • 什么时候应该使用导航控制器?

    我不知道什么时候应该使用导航控制器而不是使用普通视图控制器的 segue 如果使用segue Modal和Push segue有什么不同 你可以给我一个例子吗 简短回答 使用具有 show segues 的导航控制器仅用于实现向下钻取行为
  • 有多少用户可以运行使用 OpenGL 3.x 的软件?

    我可以期望用户能够运行使用 OpenGL 3 x 的软件吗 拥有开源图形驱动程序的 Linux 用户可以运行 OpenGL 3 x 吗 我知道Mesa3D 7 8仅支持OpenGL 2 1 我还知道 OS X Snow Leopard 支持
  • 以编程方式连接到 Android wifi 网络

    我正在尝试连接到选定的 wifi 网络 从 UI 但无法连接到它 这是我的代码 private boolean addNetworkAndActivate ScanResult scanResult String password Wifi
  • 实体框架(代码优先)-动态构建模型

    我有一个包含我的域类的程序集 Domains dll 我动态地将程序集加载类添加到我的 DbContext Dbset 中 public class MyContext DbContext public MyContext base DBC
  • 将 NumPy 数组转储到 YAML 作为常规列表

    当使用 PyYAML 在 YAML 文件中保护 NumPy 数组时 它默认添加大量元数据 以便在加载文件时可以恢复实际数组 例子 import numpy as np import yaml a np array 1 2 3 print y
  • 初学者如何在 Asp.net MVC3 中连接 Sql 数据库

    我曾经在 ASP Net 中开发应用程序 在这种情况下我们可以使用 ADO net 和连接字符串 以及代码隐藏文件 但这里 MVC 是分离业务逻辑的好方法 所以我正在学习实现该架构 我正在制作一个示例应用程序 其中问题和答案存储在数据库 S
  • PyRFC中nuc_length和uc_length参数的含义?

    我最喜欢的搜索引擎 ecosia https www ecosia org 无法从上游 SAP 找到有关以下含义的规范文档uc length vs nuc length 两者有什么区别 我通过修改版本获得这些参数clientPrintDes
  • 列出可用的平台工具集

    有没有办法列出 VS2012 中可用的平台工具集 我的意思是一个可能包含 v90 v100 v110 v110 xp 和任何外部提供的平台工具集的列表 或者 应该更容易 有没有办法检查给定的平台工具集是否已安装 这是一个控制台应用程序实用程
  • Robots.txt 类别 URL 限制

    我无法找到有关我的案件的信息 我想限制以下类型的 URL 被编入索引 website com video title video title 我的网站生成我的视频文章的双 URL 副本 每篇视频文章的 URL 开头均以 视频 一词开头 所以
  • 使用 Selenium 和 Python 在 Instagram 通知上点击“现在不”

    我已经编写了一个可以成功登录 Instagram 的脚本 当我应该在家里使用我的帐户时 网站会显示一个弹出窗口 询问您是否需要通知 此时 我尝试了很多解决方案 但一无所获 我只是希望 当显示弹出窗口时 脚本应该单击 现在不 from sel
  • 将可选参数传递给函数,三个点

    我很困惑如何 works tt function return x 为什么不tt x 2 return 2 相反 它失败并出现错误 tt x 2 中的错误 未找到对象 x 尽管我路过x作为论据 因为你在其中传递的所有内容 停留在 您传递的未
  • 迭代时不打印变量

    我正在为个人项目编写 C CSV 类 但偶然发现了一个奇怪的错误 在我的测试程序中 我有代码 for int i 0 i lt 3 i std cout lt lt i lt lt std vector
  • 高基数字段的 Hive 查询性能

    我在配置单元中有一个单一但巨大的表 几乎总是使用主键列进行查询 例如 employee id 该表将非常巨大 每天插入数百万行 我想使用该字段上的分区进行快速查询 我关注了这个帖子 https stackoverflow com quest
  • 检查 IOS 8 中是否启用了本地通知

    我在互联网上查找了如何使用 IOS 8 创建本地通知 我找到了很多文章 但没有一篇文章解释了如何确定用户是否打开或关闭了 警报 有人可以帮帮我吗 我更喜欢使用 Objective C 而不是 Swift 您可以使用以下方法检查它UIAppl
  • Java System.nanoTime() 经过时间的巨大差异

    我正在使用 android 小部件并检查 System nanoTime 的两次调用之间的经过时间 并且数字很大 你如何用这个来衡量经过的时间 它应该是零点几秒 但实际上却更长 谢谢 The System nanoTime returns
  • 使用 groupby 对多列进行 Value_counts

    我需要一些关于熊猫的帮助 我有以下数据框 df pd DataFrame 1Country FR FR GER GER IT IT FR GER IT 2City Paris Paris Berlin Berlin Rome Rome Pa
  • 是否可以将帮助图标放在 p:accordionPanel 标题中?

    我正在使用 PrimeFaces 5 2 和 JSF 来开发页面 但我无法在 Accordion 面板标题中添加搜索图标和其他链接
  • 是否可以跳过“+”运算符中的 NA 值?

    我想用 R 计算方程 我不想使用该函数sum因为它返回 1 值 我想要完整的值向量 x 1 10 y c 21 29 NA x y 1 22 24 26 28 30 32 34 36 38 NA x 1 10 y c 21 30 x y 1