如果 R 中满足条件,则将多列中的值替换为 NA

2023-12-31

如果满足条件,我尝试将多个列中的值替换为 NA 。

这是一个示例数据集:

library(tidyverse)
sample <- tibble(id = 1:6,
                 team_score = 5:10,
                 cent_dept_test_agg = c(1, 2, 3, 4, 5, 6),
                 cent_dept_blue_agg = c(15:20),
                 num_in_dept = c(1, 1, 2, 5, 100, 6))

我希望当 num_in_dept 为 1 时,包含 cent_dept_.*_agg 的列为 NA,所以它看起来像这样:

library(tidyverse)
solution <- tibble(id = 1:6,
                   team_score = 5:10,
                   cent_dept_test_agg = c(NA, NA, 3, 4, 5, 6),
                   cent_dept_blue_agg = c(NA, NA, 17:20),
                   num_in_dept = c(1, 1, 2, 5, 100, 6))

我尝试过使用replace_with_na_at(来自nanier包)和 na_if (来自dplyr包),但我无法弄清楚。我知道我的选择标准是正确的(dplyr::matches("cent_dept_.*_agg"),但我无法找出解决方案。

在我的实际数据集中,我有许多以 cent_dept 开头并以 agg 结尾的列,因此选择与组件匹配的用户非常重要。

感谢您的帮助!


我们可以用mutate_at选择列matches'cent_dept' 和replace'num_in_dept' 为 1 的值

library(dplyr)
sample %>%
    mutate_at(vars(matches('^cent_dept_.*_agg$')), ~ 
                  replace(., num_in_dept == 1, NA))
# A tibble: 6 x 5
#     id team_score cent_dept_test_agg cent_dept_blue_agg num_in_dept
#  <int>      <int>              <dbl>              <int>       <dbl>
#1     1          5                 NA                 NA           1
#2     2          6                 NA                 NA           1
#3     3          7                  3                 17           2
#4     4          8                  4                 18           5
#5     5          9                  5                 19         100
#6     6         10                  6                 20           6

In base R,我们还可以做

nm1 <- grep('^cent_dept_.*_agg$', names(sample))
sample[nm1] <- lapply(sample[nm1], function(x) 
         replace(x, sample$num_in_dept == 1, NA))

或者可以用以下方法完成

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

如果 R 中满足条件,则将多列中的值替换为 NA 的相关文章

  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 将数据框中的每个 x 个字符拆分为字符串

    我知道这里有一些关于每隔一段时间分割一个字符串的答案nth字符 例如this one https stackoverflow com questions 23208490 split each character in r and this
  • 将绘图调用拆分为多个块

    我正在编写一个图的解释 其中我基本上将在第一个块中创建图 然后描述该输出 并在第二个块中添加一个轴 然而 似乎每个块都会强制一个新的绘图环境 因此当我们尝试使用以下命令运行块时会出现错误axis独自的 观察 output html docu
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • 为什么 dplyr filter() 不能在函数内工作(即使用变量作为列名)?

    使用 dplyr 函数对数据进行过滤 分组和变异的函数 基本管道序列在函数之外工作得很好 这就是我使用真实列名称的地方 将其放入一个函数中 其中列名称是一个变量 并且某些函数可以工作 但有些函数则不能 尤其是 dplyr filter 例如
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • 基于现有类的 Sass 'if' 语句

    我是 Sass 新手 想使用 if 语句来检测元素上的现有类 以便生成相关的 css 我的设置有大量 Javascript 生成的图像 这些图像被分配了唯一的 ID 以及 图片 类和随机分配的上 右 下或左类 我还使用 Sass 的随机函数
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • 在 Rcpp 中使用其他包中的 C 函数

    我试图从 C 函数中的 cubature 包调用 C 例程来执行多维积分 我试图重现的基本 R 示例是 library cubature integrand lt function x sin x adaptIntegrate integr
  • 如何在 R 中匹配多个 ggplot2 图中的调色板?

    自从被问到这个问题以来已经有一段时间了 但我知道一个事实 我很快就会提取新数据 我想弄清楚如何用这种技术来绘制它 看起来评论和答案中的人知道如何做到这一点 但我无法完全弄清楚所给我的内容 还有人想尝试一下吗 我正在尝试使用具有多个级别的因子
  • ggplot2:如何标记事件发生的日期

    我想从第二个情节中获取第一个情节的信息 第二张图表示事件发生的天数 它看起来更宽 因为它没有图例 但它是相同的时间尺度 我选择在第一个图中手动分配颜色 I would like to overlay the second plot dots
  • R:如何获取该月的周数

    我是 R 新手 我想要该日期所属月份的周数 通过使用以下代码 gt CurrentDate lt Sys Date gt Week Number lt format CurrentDate format U gt Week Number 3
  • R 中用于调用 sed、rsync、ssh 等的 system() 的替代方案:函数是否存在,我应该编写自己的函数,还是我错过了重点?

    最近 我发现了base files命令 与其他命令一起使用 例如getwd write lines file show dir等等 似乎有许多 bash 函数的 R 等价物 我还在 R 中编写了一些函数来简化对ssh and rsync通过
  • 投资决策:R中的NPV、IRR、PB计算

    我正在尝试计算不同数量项目的净现值 NPV 内部收益率 IRR 和投资回收期 PB 时间 以评估哪个投资项目提供最佳回报 到目前为止 我可以为每个项目单独计算几行代码 但我想做的是 编写一个函数 它接受一个包含许多不同项目及其现金流的矩阵
  • read_html(url) 和 read_html(content(GET(url), "text")) 之间的区别

    我正在看这个很棒的答案 https stackoverflow com a 58211397 3502164 https stackoverflow com a 58211397 3502164 解决方案的开头包括 library httr
  • 如何使用 SparkR 1.6.0 写入 JDBC 源?

    使用 SparkR 1 6 0 我可以使用以下代码从 JDBC 源读取数据 jdbc url lt jdbc mysql localhost 3306 dashboard user
  • 线性判别分析图

    如何将样本 ID 行号 作为标签添加到此 LDA 图中的每个点 library MASS ldaobject lt lda Species data iris plot ldaobject panel function x y points

随机推荐

  • 打印地图中包含的集合的内容

    我正在编写一个程序 从文件中读取团队名称并将其分组 每组尺寸为 4 我使用的是 map
  • Eclipse 错误:解析 ...\android-22\android-wear\armeabi-v7a\devices.xml 时出错

    最近 我将 android SDK 升级为Android M API 22 MNC 预览版 之后每个项目打开Eclipse都报错 的错误为logcat and of 弹出窗口 says 错误 解析错误 sdk system images a
  • TaskScheduler.UnobservedTaskException 事件处理程序从未被触发

    我正在阅读一本有关 C 任务并行库的书 并有以下示例 但 TaskScheduler UnobservedTaskException 处理程序从未被触发 谁能给我任何线索来解释为什么 TaskScheduler UnobservedTask
  • 如何在 iOS 上启用新的 Objective-C 对象文字?

    当我使用 Xcode 4 4 创建一个新项目并添加以下行时 NSDictionary test key test value NSString value test key NSLog value is value 它编译时没有警告并按预期
  • jQuery 快速问题:停止事件传播?

    我有一组响应 mouseUp 事件的元素 其中的子元素也响应 mouseUp 事件 全部通过 jQuery 当用户鼠标单击发生子级的 mouseUp 事件时 如何才能使子级的父级 mouseUp 事件在 jQuery 中也不会发生 你要ev
  • 如何打印类型向量 > 来屏幕 C++?

    我有一个返回值向量 gt 的方法 但我不知道如何打印该向量的内容 我试图循环浏览内容 但出现编译器错误 这是我尝试过的一个例子 vector
  • SwiftUI 中根据文本高度自动调整视图高度

    我正在尝试在 SwiftUI 中创建一个视图 其中左侧图像的背景应根据右侧文本的高度垂直缩放 我尝试了很多不同的方法 从GeometryReader to layoutPriority 但我还没有设法让它们中的任何一个工作 当前状态 期望的
  • 向服务器发送 http 请求而不期待响应

    我需要向服务器发送 POST http 请求 但它不应该期待响应 我应该使用什么方法呢 我一直在使用 WebRequest request2 WebRequest Create http local ape project org 6969
  • 如何显示事务隔离级别(MySQL)

    我想知道当前Mysql数据库设置的隔离级别是什么 怎么才能查出来呢 我尝试在谷歌上搜索但没有找到 检查会话事务级别 mysql8 SELECT transaction ISOLATION 检查全局事务级别 mysql8 SELECT glo
  • IO 绑定操作的并行执行

    我已从头到尾阅读了 TPL 和任务库文档 但是 我仍然无法非常清楚地理解以下案例 现在我需要实现它 我将简化我的情况 我有一个IEnumerable
  • Java - 为什么将数组声明为接口类型?

    这是马克 韦斯教授在他的书中说的Java数据结构与算法分析 public class BinaryHeap
  • 如何使用pymssql获取sql打印消息

    我正在运行一些查询 从其执行中打印运行时统计信息 这是通过完成的print message 在sql脚本中使用 我希望在通过 pymssql 调用过程 脚本时看到这些消息 conn pymssql connect server user p
  • Django 中大表的内存效率(恒定)和速度优化迭代

    我有一张非常大的桌子 它当前位于 MySQL 数据库中 我用的是Django 我需要迭代each表的元素来预先计算一些特定的数据 也许如果我更好的话我可以这样做 但这不是重点 我希望在不断使用内存的情况下尽可能快地保持迭代 因为它已经明确地
  • 如何使用 PHP 获取午夜之前的小时数

    设想 一条记录已输入数据库 我试图找出以下方程 如何获取自添加记录以来的小时数 如何获取自记录以来到午夜还剩多少小时 加入 鉴于这些时间 日期 时间 2012 08 22 20 11 20 时间戳 1345684280 今晚午夜 2012
  • 如何允许用户更改列表框顺序

    我正在寻求帮助 我有两个列表 它们都将数据添加到同一个列表框中 并将它们显示为摘要 我想知道如何让用户在列表框中向上或向下移动索引 项目已添加到此处 private void BtnAddpickup Click object sender
  • 如何将时区全名翻译为 tz 缩写?

    在 Rails 3 x 应用程序中 我需要显示时区缩写 EST PST CST 等 而不是完整的时区名称 我见过许多似乎解决这个问题的讨论 但方式过于冗长 是否有一个 gem 或一个非常简洁的方法来处理这个问题 可以用来正确地映射它们 对于
  • Django 模板 datetime.weekday 名称

    有没有办法将模板中日期时间对象的工作日显示为工作日的实际名称 基本上我想要它打印Friday代替5 请参阅文档内置date filter https docs djangoproject com en dev ref templates b
  • SwiftUI 验证文本字段中的输入

    我试图通过使用正则表达式删除某些字符来验证文本字段中的用户输入 不幸的是 我遇到了 didSet 方法的问题textvar 递归调用自身 import SwiftUI import Combine class TextValidator O
  • 创建对对象的引用

    QuestionR 是否包含对象引用的概念 在Python中 等于运算符实际上是通过引用进行复制 例如 gt gt a 1 2 3 gt gt b a gt gt b 1 10 gt gt a 1 10 3 或在 C 中 vector a
  • 如果 R 中满足条件,则将多列中的值替换为 NA

    如果满足条件 我尝试将多个列中的值替换为 NA 这是一个示例数据集 library tidyverse sample lt tibble id 1 6 team score 5 10 cent dept test agg c 1 2 3 4