使用变换函数添加变量,同时忽略 NA

2023-12-04

我有一个包含大量变量的数据框。我通过将一些旧变量添加在一起来创建新变量。我用来执行此操作的代码是:

name_of_data_frame<- transform(name_of_data_frame, new_variable=var1+var2 +....)

当 Transform 在其中一个观测值中遇到 NA 时,它会在新变量中返回“NA”,即使它添加的其他一些变量不是 NA。

e.g. if var1= 4, var2=3, var3=NA,然后使用transform,如果我这样做了var1+var2+var3它会给出NA,而我希望它给我 7。

我不想重新编码我的NAs 在数据帧内为零,因为我可能需要参考NA稍后,所以不想混淆NA真实的观察结果0.

关于如何绕过 R 治疗的任何帮助NA以上述方式使用变换函数会很棒(或者如果有其他函数可以使用,那也很棒)。

请注意,我并不总是只是对彼此相邻的变量求和,我还经常对变量进行除法、乘法、减法等。


我的第一直觉是建议使用sum()从那时起你可以使用na.rm争论。然而,这不起作用,因为sum()将其参数减少为单个标量值,而不是向量。

这意味着你需要写一个parallel sum功能。我们称之为psum(),类似于基本 R 函数pmin() or pmax():

psum <- function(..., na.rm=FALSE) { 
  x <- list(...)
  rowSums(matrix(unlist(x), ncol=length(x)), na.rm=na.rm)
} 

现在设置一些数据并使用psum()得到所需的向量:

dat <- data.frame(
  x = c(1,2,3, NA),
  y = c(NA, 4, 5, NA))

transform(dat, new=psum(x, y, na.rm=TRUE))
   x  y new
1  1 NA   1
2  2  4   6
3  3  5   8
4 NA NA   0

同样,您可以定义一个parallel product, or pprod()像这样:

pprod <- function(..., na.rm=FALSE) { 
  x <- list(...)
  m <- matrix(unlist(x), ncol=length(x))
  apply(m, 1, prod, na.rm=TRUE)
} 

transform(dat, new=pprod(x, y, na.rm=TRUE))
   x  y new
1  1 NA   1
2  2  4   8
3  3  5  15
4 NA NA   1

这个例子pprod为您想要执行的操作提供了一个通用模板:创建一个使用apply()将输入矩阵总结为所需向量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用变换函数添加变量,同时忽略 NA 的相关文章

  • 在 dplyr tbl_df 中获取删除列的最佳实践

    我记得 2001 年 r help 上的一条评论说drop TRUE in data frame是 R 历史上最糟糕的设计决策 dplyr纠正这一点并且不会隐式删除 当尝试将旧代码转换为dplyr风格 这会引入一些讨厌的错误d 1 or d
  • 包“diamonds”不可用(对于 R 版本 3.0.0)[重复]

    这个问题在这里已经有答案了 在我的 R 环境中拥有钻石包 数据集的简单方法是什么 我是使用 RStudio 3 0 的新手 gt install packages diamonds Warning in install packages p
  • 将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10

    嗨 我是 Windows 批处理新手 我想向打电话的同事分发一个 runMe bat 文件Rscript myRfile R处理一些数据文件 但众所周知 我的同事在不同地方安装了 R 我不能指望他们知道如何将 Rscript 添加到 PAT
  • 按组连接/粘贴列并添加到原始数据

    我有一个名称数据框 名称 按 部门 分组 Dept Date Name 30 07 DEC 02 Raphaely 30 18 MAY 03 Khoo 40 07 JUN 02 Mavris 50 01 MAY 03 Kaufling 50
  • igraph - 将文本添加到社区图

    使用下面的代码 我可以在 igraph 提供的 空手道俱乐部 示例中生成社区图 请参见第一张图片 library igraph karate lt make graph Zachary wc lt cluster walktrap kara
  • 我想将两个变量合并为一个具有日期格式的变量

    我有一个包含几个月的字符列的数据集 MONTH 和指示年份的数字列 YEAR 为了将其用作面板数据 我需要将这些结合起来YEAR and MONTH转换为日期格式的变量 我尝试过改变变量MONTH转换为数字格式 然后合并MONTH与柱YEA
  • 在 ggplot2 中隐藏单个几何图例

    我将相同的变量 颜色 映射到两个不同几何图形中的颜色 我希望它们要么出现在单独的图例中 DHJ 和 EFI 要么最好完全跳过第二个图例 对于 E F 和 I 目前 R 将两者混合在一起 并给我一个图例 其中按字母顺序列出了 DEFHIJ 所
  • 在 R 中提取栅格的最快方法(提高我的可重现代码的时间)

    我想知道我是否已最大化提取栅格中某个点周围缓冲区域平均值的速度 本地的性能可以进一步提高吗 I use parallel mclapply已经 我知道我可以通过在集群上设置和运行它来获得进一步的收益 使用集群或获得更多的CPU不是我正在寻找
  • Shiny:合并 DT::datatable 中的单元格

    我想以闪亮的方式合并 DT datatable 列中的几行 可以这样做吗 目前我能够输出如下所示 但理想情况下 我想合并行并希望输出如下所示的内容 是否可以在 DT datatable 中合并这样的行 在以下人员的帮助下这是可能的数据表行组
  • 在 ggplot2 中使用 FontAwesome 作为点的替代品

    这可能是一个相当基本的事情 但我似乎找不到有意义的答案 我正在尝试使用 R 中的 fontawesome 包将表情符号用作 ggplot2 图表中的点 但我很难弄清楚如何为每个变量分配不同的表情符号 这是一些示例数据 我们将数据框称为 样本
  • R:根据排名重新排列数据框的列

    我有以下数据框 df1 Type CA AR OR alpha 2 3 5 beta 1 5 6 gamma 6 2 8 delta 8 1 9 Total 17 11 28 我想根据 总计 行重新排序该数据框 使其按降序排列 生成的数据框
  • 如何在 R 中计算带有变量的表达式?

    我希望这段代码能够设置plt等于 10 gt var plt gt eval paste0 var lt 10 1 plt lt 10 但相反 它返回一个字符串 I tried eval as expression paste0 var l
  • R:读取多个Excel文件,提取第一个工作表名称,并创建新列

    我有多个 Excel 文件 并且它们具有唯一的工作表名称 在我的情况下是文件创建日期 我批量阅读它们 需要将工作表名称分配给新列 id 中的每个文件 我知道如何制作数字 id 或 id 文件名 但找不到将工作表名称获取为 id 的方法 li
  • R 中的因素:不仅仅是烦恼?

    R 中的基本数据类型之一是因子 根据我的经验 因素基本上是一种痛苦 我从不使用它们 我总是转换为字符 我感觉很奇怪 好像我错过了什么 是否有一些使用因子作为分组变量的函数的重要示例 其中因子数据类型变得必要 当我should使用因素 你应该
  • 使用自定义指标的标准差选择带插入符号的调整参数

    我将插入符号与自定义拟合指标一起使用 但我不仅需要最大化该指标 还需要最大化其置信区间的下限 所以我想最大化类似的东西mean metric k stddev metric 我知道如何手动执行此操作 但是有没有办法告诉插入符使用此函数自动选
  • 升级到 Mac OSX 10.10 后,从 R 控制台运行系统命令无法找到已安装的程序

    我一直有一些奇怪的问题 https stackoverflow com questions 26477679 texi2dvi error when compiling tex files using rstudio and knitr s
  • R 代码编程:在堆叠排序表上先向下填充缺失列值,然后向上填充

    我有一个包含 3 列的数据框 但第三列有一些缺失值 需要用以下逻辑填充 期望的结果是第三列 部分 上没有缺失值 要填充它 我们必须找到第一个 周 其中为该特定 项目 第一列 填充了 部分 值 并且然后通过向下复制 part 来填充它 直到找
  • tmap 仅在 sf 几何列中绘制第一个多边形

    tmap 仅绘制 sf 几何列中的第一个多边形 但是plot 得到他们全部 一些 github 问题tmap https github com mtennekes tmap issues 360 and leaflet https gith
  • GGplot为点添加数据标签

    如何使用 ggplot 将数据标签添加到点 我有一个名为 stacked 的堆叠数据框 gt head stacked time value variable 1 100 152 2211 gg 2 110 146 3304 gg 3 11
  • 在 R 中创建多维 NetCDF

    我正在尝试使用 R 包创建多维 NetCDF 文件ncdf http cran r project org web packages ncdf index html 我正在对一组 1500 个点进行气候日常观测 每个点的观测数量约为 182

随机推荐

  • 如何在没有 sudo 的情况下构建库?

    我通常会建立我的图书馆 configure make sudo make install 然而 Travis 文档不鼓励使用 sudohttp docs travis ci com user workers container based
  • GridView“ ”引发了未处理的事件 RowUpdating。 asp.net 背后的 C# 代码

    Stackoverflow和其他网站上也有类似的问题 但我似乎错过了一些东西 我有一个 GridView 绑定到来自数据库的 DataTable 我的目标是使用调用以下方法的同一行中的按钮更新当时的一行 protected void Tes
  • TensorFlow:恢复 RNN 网络后损失猛增

    环境信息 操作系统 Windows 7 64位 从预构建的 pip 安装的 Tensorflow 无 CUDA 1 0 1 Python 3 5 2 64 位 Problem 我在恢复网络 RNN 字符基础语言模型 时遇到问题 下面是具有相
  • Spark 查找 Dataframe 提高性能的最佳方法

    数据框A 数百万条记录 其中一列是create date modified date 数据框 B 500 条记录具有 start date 和 end date 目前的方法 Select a b from a join b on a cre
  • 如何检测html5画布是否为空白?

    我有一个涂鸦应用程序 可以将 html5 画布保存到 s3 中的图像中 如果用户在没有绘制任何内容的情况下意外单击 保存 我想避免保存空白 完全透明 的 png 我发现即使对于空白画布 toDataURL 也绝不是空字符串 而是大量数据转储
  • 表单上的两个提交按钮

    假设我有一组机构 每个机构都知道他的父亲是谁 并且一个机构可以有很多孩子 现在我为这个问题创建了一组级联下拉列表 因此在第一个时候 他会找到没有父亲的列表 如果可能的话 为第 0 层 一旦用户选择一个项目 第二个列表上的列表就会加载其子列表
  • Xcode 7: -F/ 的链接器警告,但 app.xcodeproj/project.pbxproj 中没有设置与 匹配

    我使用 Xcode 7 beta 3 将 iOS 的 Swift 1 x 项目转换为 Swift 2 x 它可以编译并运行 但链接器警告仍然存在 我已经在 project pbxprox 中搜索了有问题的路径 并查看了 Xcode 中的 构
  • 在 c# 中使用 asp.net 中的 Windows 身份验证

    我试图了解 Windows 身份验证的工作原理以及如何实现它 我读过很多文章 并在 youtube 上观看了一些相当长的视频 但我仍然不明白需要添加到我的 web config 文件 index aspx 页面中才能使其正常工作 这是ind
  • Python终端打开后报错

    当我尝试通过终端从终端打开 python 时python命令 我突然遇到错误 终端工作正常 但我想了解为什么会发生这种情况 提前致谢 PS C Users blackbird gt py AMD64 on win32 Type help c
  • 适用于 Go 的 AWS 开发工具包 - DynamoDb - 向 FilterExpression 添加多个条件

    我正在尝试使用表达式生成器按多个条件过滤 DynamoDb 扫描 根据这个博客文章 尝试在构建器中添加另一个条件将覆盖先前的条件 必须有某种方法来添加另一个条件 但我还没有找到一种方法来做到这一点 这行不通 cond1 expression
  • c++ * 和 & 同时

    在我的 C 数据结构课程中 我们正在研究二叉树 有些代码包含同时使用 和 的地方 彼此相邻 这非常令人困惑 void balance AvlNode t 是使用 this 的函数定义的一个示例 这里的 和 会发生什么 编辑 这个问题的答案告
  • 如何使用 PHP 和 Javascript 实现服务器推送/长轮询/comet

    如何使用 PHP 和 Javascript 实现彗星 服务器推送设计模式 本质上我想要的是这样的 用户单击 提交 按钮 JavaScript 显示类似 正在处理 0 100 个项目 的消息 每当处理新项目时 php 服务器都会推送更新 并且
  • 使用 sqlalchemy 将数据加载到 Oracle 数据库时不允许使用“Multi”方法

    我正在使用 sqlalchemy 和 pandas 将数据帧加载到 Oracle 数据库 由于 multi 方法允许批量上传 因此我选择该方法 我的pandas版本是1 0 1 但是我收到以下错误 当前数据库版本设置的 oracle 方言不
  • d3.js 可重用饼图,具有动态更新

    我正在尝试创建一个具有动态转换的可重用饼图作为学习任务 我正在研究 Chris Viau 编写的 d3 js 可重用组件电子书 我遇到的问题基本上是它不更新 而是创建多个饼图 我想知道我是否不理解 d3 dispatch 的工作原理 或者我
  • 在 AWS CodeBuild 中缓存 Gradle 包装器

    这就是我当前的构建规范 phases build commands gradlew soakTest s cache paths root gradle caches gradle 但是 当此构建规范在 CodeBuild 中运行时 它会打
  • 如果 Term 达到某个点,Kusto row_cumsum 会修改 Term

    我有一份按以下顺序排列的员工姓名和工资列表 我需要按以下格式创建输出表 即 每当累计工资总额超过 3000 时 我必须检测到这一点并标记该行 我尝试过 row cumsum 并重置Term一旦超过 3000 但第二次迭代就不起作用了 dat
  • CSS 使用 Flexbox 对齐两侧的几个项目 [重复]

    这个问题在这里已经有答案了 我试图使用 css flexbox 在两侧做一些项目 但不知何故我无法将它们 div 并排粘贴 PS 我无法设置元素数量 因为我希望它灵活 因为我可以添加或删除 并且它不会影响我的CSS 我希望它是这样的 图片样
  • 有条件合并列表元素

    我想根据某些表达式有条件地合并列表中彼此跟随的元素 一个更好地解释我想做的事情的例子 from val list List a1 a2 b1 b2 b3 a3 a4 我想将以 b 开头的所有元素合并到单个元素中以获得如下结果列表 List
  • FormData 为空有问题吗?

    我似乎对 FormData 为空有疑问 我正在尝试在单个 POST 请求中上传文件和 JSON 我尝试了各种各样的方法 但似乎没有任何效果 我想知道我是否在这里弄乱了一些基本的东西 但我似乎找不到任何东西 非常感谢您的帮助
  • 使用变换函数添加变量,同时忽略 NA

    我有一个包含大量变量的数据框 我通过将一些旧变量添加在一起来创建新变量 我用来执行此操作的代码是 name of data frame lt transform name of data frame new variable var1 va