带条件的 sum() 在 dplyr 包中提供了不正确的结果

2023-12-14

申请时sum()条件为summarize()函数,它没有提供正确的答案。

制作数据框x:

x = data.frame(flag = 1, uin = 1, val = 2)
x = rbind(x, data.frame(flag = 2, uin = 2, val = 3)) 

这就是 x 的样子:

  flag uin val
1    1   1   2
2    2   2   3

我想总结一下valval with flag == 2,所以我写

x %>% summarize(val = sum(val), val.2 = sum(val[flag == 2]))

结果是:

  val val.2
1   5    NA

但我期望的是val.2是 3 而不是NA。有关更多信息,如果我先计算条件求和,然后计算总和,则会得出正确的答案:

x %>% summarize(val.2 = sum(val[flag == 2]), val = sum(val))
  val.2 val
1     3   5

此外,如果我只计算条件求和,它也可以正常工作:

x %>% summarize(val.2 = sum(val[flag == 2]))
  val.2
1     3

重复的名称会给您带来问题。在这段代码中

x %>% summarize(val = sum(val), val.2 = sum(val[flag == 2]))

你有两个val对象。一个创建自val = sum(val)以及数据框中的其他内容x。在你的代码中,你改变val从数据帧值到val=sum(val) = 5。然后你就做

`val[flag == 2]`

给出一个向量c(2, NA), since val = 5。因此,当您添加2 + NA你得到NA。解决办法,不要使用val twice,

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

带条件的 sum() 在 dplyr 包中提供了不正确的结果 的相关文章

随机推荐

  • 无法在 Formik onSubmit 中设置错误

    我这几天遇到了一些问题 我在 Formik 表单的 onSubmit 方法中设置的每个错误都没有添加到错误属性中 我的具体问题是关于 GraphQL API 返回的后端错误 我的表格很长 所以我不会发布所有代码 但相关代码如下 这是我的表格
  • mysql 翻译表缺少语言回退

    我有一个这样的数据库结构 国家 CREATE TABLE IF NOT EXISTS countries id int 11 NOT NULL AUTO INCREMENT code varchar 2 COLLATE utf8 unico
  • Android Assets 文件夹中的 Mp3 音频无法从签名且 zip 对齐的 APK 中播放

    我正在加载 mp3 文件以在基于 AndEngine 的 Android 游戏中玩 当我将游戏打包为 APK 时 资产文件夹中的 mp3 音频会抛出错误 无法作为文件描述符打开 它可能已被压缩 但是 当我使用 Eclipse MOTODEV
  • 如何使侧边栏与内容div的高度相同?

    代码如下 CSS container border 1px dashed 000 overflow hidden content sidebar float left width 50 content background yellow s
  • 处理传单地图中的ajax请求

    我有一个非常基本的传单地图 使用leaflet panel layers创建一个漂亮的图层控件 我有两个函数来创建图层和叠加层 我的数据位于外部 geoJSON 文件中 这似乎是我的问题 因为传单不提供任何获取外部 geoJSON 的内容
  • 如何选择SQL数据库表中的第n行?

    我有兴趣学习一些 理想情况下 与数据库无关的选择方法n数据库表中的第行 了解如何使用以下数据库的本机功能来实现这一点也很有趣 SQL服务器 MySQL PostgreSQL SQLite Oracle 我目前正在 SQL Server 20
  • 如何使用 float/double 的模数?

    我正在为学校项目创建 RPN 计算器 但在使用模数运算符时遇到了问题 由于我们使用的是双精度数据类型 因此模数不适用于浮点数 例如 0 5 0 3 应该返回 0 2 但我遇到了被零除的异常 指令说要使用fmod 我到处寻找fmod 包括ja
  • 在显示上下文菜单之前右键单击选择 TreeView 节点

    我想在显示 ContextMenu 之前右键单击选择一个 WPF TreeView 节点 对于 WinForms 我可以使用这样的代码查找在上下文菜单下单击的节点 WPF 替代品有哪些 根据树的填充方式 发件人和 e Source 值可能会
  • 从室内自行车数据特征解码蓝牙数据

    我正在尝试使用健身机器服务 室内自行车数据特征来获取节奏数据 通过使用 nRF Connect Android 应用程序 我可以看到数据就在那里 示例数据 inst speed 8 5km h inst cadence 45 0 per m
  • 比较效率

    一般情况下什么比较快 if num gt 10 or if num lt 10 编译器很可能会优化这类事情 不用担心 在这种情况下只需编写代码以保持清晰即可 汇编语言通常有以下操作 gt and lt 步数与 lt and gt 例如 用摩
  • iPad 视网膜图像 - 为什么使用两种不同的图像尺寸?

    对于 iPad Retina 或 iPhone Retina 为什么我们需要有两种类型的图像尺寸并为 Retina 版本添加 2x 之类的后缀 难道我们不能只有一种类型的视网膜分辨率图像 而对于没有视网膜显示屏的设备 让设备处理将图像调整为
  • .Net Treeview 事件处理

    我正在将 VB6 应用程序迁移到 Net 我们必须始终提供类似的功能 一种形式是带有复选框的树视图 该复选框具有三级节点 第一级仅用于对下一级进行分组 并且它们不可检查 第二级节点可由用户检查 并且当检查或取消检查时 其所有子节点都会效仿
  • Protobuf-net - 序列化 .NET GUID - 如何在 C++ 中读取它?

    我在 NET 应用程序中使用 Protobuf net 相对轻松地序列化了一个对象 我还使用 GetProto 命令获取 protobuf net 生成的 proto 文件 在 NET 生成的 proto 文件中 我的 GUID 字段的类型
  • 本地 Blazegraph 上的 Wikidata :此处预期有 RDF 值,发现“”[第 1 行]

    我们 Thomas 和 Wolfgang 已按照此处的说明在本地安装了 wikidata 和 blazegraph https github com wikimedia wikidata query rdf blob master docs
  • 通过 ADFS(Active Directory 联合身份验证服务)对用户进行身份验证

    我需要检查特定用户是否存在于 Active Directory 中ADFS 所以 我想要我的ADFS to check user Authentication 通过用户名 密码 任何人都可以提供示例代码或教程吗 提前致谢 要使用用户名 密码
  • 加载 Webchat 控件后立即从机器人发送问候/欢迎消息

    我正在使用 Microsoft 的 C Bot 框架开发一个机器人 我试图在用户发送任何内容之前向他 她发送欢迎消息作为介绍 经过研究 我使用了一些实现这一点HandleSystemMessage功能并在以下情况下发送消息Conversat
  • 如何为 Android 应用程序创建类似“脉冲”的 UI

    I would like to know how can I create a Pulse like app on android Here is a screenshot 有很多事情 它有许多 水平内容行 每 行 都有内容的 单元格 我可
  • GKE 上的集群更新后容器日志不起作用

    最近 我对集群进行了升级 该集群运行多个用 Java 编写的微服务容器 使用默认的 Spring Boot 的 log4j2 默认配置 从那时起 容器日志不再更新 这kubectl 日志命令工作正常 可以使用此命令查看所有最近的日志 但应该
  • Lua for 循环减少 i?奇怪的行为[重复]

    这个问题在这里已经有答案了 有人可以向我解释一下吗 for i 1 5 do print i i i 1 print i end 输出是 1 0 2 1 3 2 and so forth 我预计 i 会在 1 和 0 之间变化 但显然它不断
  • 带条件的 sum() 在 dplyr 包中提供了不正确的结果

    申请时sum 条件为summarize 函数 它没有提供正确的答案 制作数据框x x data frame flag 1 uin 1 val 2 x rbind x data frame flag 2 uin 2 val 3 这就是 x 的