如果行中的任何列满足条件而不是 mutate() 列

2024-01-07

使用 dplyr,我尝试使用 ifelse 和 mutate 有条件地更新列中的值。我想说的是,在一个数据框中,如果一行中的任何变量(列)等于7,那么变量c应该变成100,否则c保持不变。

df <- data.frame(a = c(1,2,3),
                 b = c(1,7,3),
                 c = c(5,2,9))

df <- df %>%  mutate(c = ifelse(any(vars(everything()) == 7), 100, c))

这给了我错误:

Error in mutate_impl(.data, dots) : 
  Evaluation error: (list) object cannot be coerced to type 'double'.

我想要的输出是:

  a b   c
1 1 1   5
2 2 7 100
3 3 3   9

注意:这是具有更多行和列的较大数据集的抽象示例。

编辑: 这段代码让我更接近一点,但它并没有对每一行应用 ifelse 语句。相反,如果 7 出现在数据框中的任何位置,则它将 c 列中的所有值更改为 100。

df <- df %>%  mutate(c = ifelse(any(select(., everything()) == 7), 100, c))

  a b   c
1 1 1 100
2 2 7 100
3 3 3 100

也许使用 dplyr 无法做到这一点?


我认为这应该有效。我们可以检查值是否在df等于 7。之后,使用rowSums查看是否有大于 0 的行,这意味着至少有一个值为 7。

df <- df %>% mutate(c = ifelse(rowSums(df == 7) > 0, 100, c))

或者我们可以使用 apply

df <- df %>% mutate(c = ifelse(apply(df == 7, 1, any), 100, c))

基本 R 等效项如下所示。

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

如果行中的任何列满足条件而不是 mutate() 列 的相关文章

随机推荐

  • pyspark/EMR 中大型 DataFrame 上的collect() 或 toPandas()

    我有一个由一台机器 c3 8xlarge 组成的 EMR 集群 在阅读了一些资源后 我了解到我必须允许相当数量的堆外内存 因为我使用的是 pyspark 因此我已按如下方式配置集群 执行人一名 火花 执行器 内存 6g Spark exec
  • 我可以在同一台计算机上安装 .Net Framework 和 .Net Core 吗?

    将它们安装在同一台机器上时是否有任何限制或需要注意的事项 NET Framework 安装是计算机全局的 例如如果将计算机从 NET Framework 4 5 2 更新到 NET Framework 4 6 all计算机上的 NET Fr
  • 使用 Response.BinaryWrite 和 Server.Mappath 将文件下载到特定位置可能吗?

    我有与数据库中的文件关联的 varbinary 数据 这是我用来在单击链接时下载此文件的代码 a is my attachment object var r context Response r AddHeader Content Disp
  • Retrofit & OkHttp - 是否可以一次只发送一个请求?

    我正在使用 Retrofit 2 4 0 向服务器发送请求 但有时 如果我的请求与另一个请求具有相似的时间戳 以毫秒为单位 服务器会阻止我的请求 我需要一次发送一个请求 请求 A 已发送 请求 B 等待 直到收到请求 A 的响应 请求 A
  • 如何在没有 npm require 的情况下使用 ReactRouter CDN 方式?

    我是反应新手 我通过直接添加react js和react dom js文件以及browser min js来使用它来进行javascript转换到我的HTML页面中进行练习 现在 我想使用react router 我已经添加了ReactRo
  • iOS 上有触摸画线的 SDK 吗?

    有没有一个框架可以用来通过触摸画线 基本上 我想为客户添加在 iPad iPhone 上签名并将其捕获为图像的功能 非常感谢任何帮助 Thanks 您可以使用UIKIT框架中提供的核心图形来满足您的要求 我在我的应用程序中有类似的要求 但用
  • 在 K 均值算法 (MATLAB) 中使用绝对皮尔逊相关性作为距离

    我需要使用相关距离进行一些聚类 但我需要绝对皮尔逊距离 而不是使用定义为 d 1 r 的内置 距离 相关 在我的应用程序中 反相关数据应该获得相同的集群 ID 现在 当使用 kmeans 函数时 我得到的质心高度反相关 我希望通过组合它们来
  • iTextSharp - 将 word doc/docx 转换为 pdf

    我知道 iTextSharp 可用于将文档转换为 pdf 但首先我们必须使用 iTextSharp text Document 从头开始 创建一个文档 然后向该文档添加元素 如果我有一个现有的 doc 文件 是否可以使用 iTextShar
  • 如何以编程方式获取 Apple Watch 唯一 id 或 UUID 或序列号?

    我想在 Apple Watch 中以编程方式读取任何唯一信息 例如 UDID 或序列号 有什么办法可以得到吗 我想以编程方式而不是通过 xcode 手动获取 WatchOS3没有任何UIDevice 类似 API 来获得平衡identifi
  • 如何根据分页查找id

    我正在使用jQuery 数据表插件 http www datatables net 在 JSF 上
  • Chrome 扩展“Script-src”错误(自学)[重复]

    这个问题在这里已经有答案了 我在学校学习 C 后正在自学 JavaScript 我认为尝试构建 Chrome 扩展将是一个很好的实践 我正在尝试访问 OpenWeatherMap 的 API 来获取城市 ID 来进行天气搜索 这是导致问题的
  • 方法重载和原始类型如何工作?

    我正在做 Java 课练习 我有这段代码 其中包含一个重载方法 class A Overloaded method public void f int n float x System out println f int n float x
  • 防止 ajax 调用缓存的正确方法是什么?

    我有一个 AJAX 调用 它根据简单的标准参数 例如一年中的月份 从不断变化的数据库返回值 在 IE 中 此函数返回缓存的数据 但它不应该返回 我已经监控了服务器端 并且客户端没有联系它 现在 我的标题问题已经以不同的方式被问过 已经在这里
  • 自动增加内部版本号

    我有两个项目正在解决 一个是版本 3 0 0 另一个是 2 0 0 我使用 MSBuild 脚本在 Team City 上构建我的解决方案 如何将版本字符串的内部版本号部分注入到 AssemblyVersion 属性中 同时保留开发时定义的
  • 如何分发调用Python的C++应用程序?

    我知道有一些方法可以从 C 调用 Python 例如 Python C API 或 Boost Python 我的问题是 如何分发该应用程序 例如 用户是否仍然需要在其计算机上安装 Python 和 Python 包 我的用户案例是 我想使
  • Azure函数应用部署和发布管道错误

    我使用 Visual Studio 推送了我的 net core 功能应用程序 现在正在设置发布管道 我可以很好地发布和执行该应用程序 并且它在 Azure 门户上运行得很好 但是 当我在 azure devOps 中看到版本的构建时 该插
  • 无状态 RESTful API 和第三方身份验证

    我想使用第 3 方身份验证 OpenID 也许是 OAuth 但我猜 OAuth 的用途是授权 以便用户可以轻松登录 但是 对每个请求进行身份验证是否意味着即使我不需要第三方 例如 Google 的任何东西 我也会多次调用它 例如 我使用
  • jquery如何调用外部url?

    我正在尝试使用 jquery 在 Facebook 墙上发表评论 但我的 ajax 调用不允许外部 url 谁能解释一下我们如何在 jquery 中使用外部 url 下面是我的代码 var fbUrl https graph faceboo
  • JavaScript 中双引号和单引号可以互换吗?

    考虑以下两种选择 console log double console log single 前者在字符串周围使用双引号 而后者在字符串周围使用单引号 我看到越来越多的 JavaScript 库在处理字符串时使用单引号 这两种用法可以互换吗
  • 如果行中的任何列满足条件而不是 mutate() 列

    使用 dplyr 我尝试使用 ifelse 和 mutate 有条件地更新列中的值 我想说的是 在一个数据框中 如果一行中的任何变量 列 等于7 那么变量c应该变成100 否则c保持不变 df lt data frame a c 1 2 3