如何通过给定条件和总和合并多行?

2024-03-18

我有包含 ID、时间和状态列的长格式数据。我希望通过 s_2 和 s_3 将一些状态合并到 ID 中,并对时间列进行求和。假设我有数据:

ID state time
1 s_1 4
1 s_2 6
1 s_3 7
2 s_1 2
2 s_2 12
2 s_3 5
2 s_4 4
3 s_1 10
3 s_2 2
3 s_3 3

我想转换成:

ID state time
1 s_1 4
1 s_2+ 13
2 s_1 2
2 s_2+ 17
2 s_4 4
3 s_1 10
3 s_2+ 5

有任何想法吗?


更改标签state值,然后按总和分组。

library(dplyr)

df %>%
  group_by(ID, state = replace(state, state %in% c('s_2', 's_3'), 's_2+')) %>%
  summarise(time = sum(time))

#    ID state  time
#  <int> <chr> <int>
#1     1 s_1       4
#2     1 s_2+     13
#3     2 s_1       2
#4     2 s_2+     17
#5     2 s_4       4
#6     3 s_1      10
#7     3 s_2+      5

或者以 R 为基数:

aggregate(time~ID + state, transform(df,
          state = replace(state, state %in% c('s_2', 's_3'), 's_2+')), sum)

如果有很多这样的团体你想瓦解也许forcats::fct_collapse会有帮助的。

df %>%
  group_by(ID, state = forcats::fct_collapse(state, `s2+` = c('s_2', 's_3'))) %>%
  summarise(time = sum(time))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过给定条件和总和合并多行? 的相关文章

  • 行方向变异的有效方法

    我有两个数据框 dfUsers and purchases使用以下代码生成 set seed 1 library data table dfUsers lt data table user letters 1 5 startDate sam
  • 使用 R SOAP (SSOAP) 检索数据/抓取

    在 B cycle 页面 www bcycle com whowantsitmore aspx 上 我试图抓取投票的位置和值 The URL http mapservices bcycle com bcycleservice asmx ht
  • 在ggplot2中,箱线图线的末尾代表什么?

    我找不到箱线图线条端点代表什么的描述 For example here are point values above and below where the lines end 我意识到盒子的顶部和底部是第 25 个和第 75 个百分位数
  • 使用 R 下载压缩数据文件、提取并导入 .csv

    我正在尝试使用以下方法从网页下载并提取 csv 文件R 这个问题是重复的使用 R 下载压缩数据文件 提取和导入数据 https stackoverflow com questions 3053833 using r to download
  • R 无法回忆起内存中的对象

    我正在构建一个包含多个步骤的函数 其中每个步骤都会创建一个对象 某个步骤失败 temp3 并且无法找到前面的步骤对象 错误 未找到对象 temp2 我不知道为什么 我有类似的函数 遵循完全相同的结构 每个步骤都遵循先前创建的对象 在函数内
  • 连接树状图和热图

    我有一个heatmap 一组样本的基因表达 set seed 10 mat lt matrix rnorm 24 10 mean 1 sd 2 nrow 24 ncol 10 dimnames list paste g 1 24 sep p
  • 构造奎因(自我复制功能)

    有没有人构建过 quine 生成自己源文本的副本作为其完整输出的程序 http www nyx net gthompso quine htm http www nyx net gthompso quine htm 在 R 中 quine 标
  • R ggplot2 分面保持比率但覆盖/定义输出图大小

    我目前正在使用 ggplot2 来比较不同组的统计数据 每个组属于不同的区域 这是通过运行 R 脚本的 Web 应用程序 tikiwiki CMS 插件 R 完成的 每个区域我可以有 2 到 30 个或更多组 相同的 R 脚本针对唯一网页中
  • 如何使用 Facet R 添加线条[重复]

    这个问题在这里已经有答案了 所以我有一个多面图 我希望能够向其中添加随每个面而变化的线 这是代码 p lt ggplot mtcars aes x wt geom histogram bins 20 aes fill factor cyl
  • ggplot 按因子和梯度颜色

    我正在尝试绘制一个对两个变量 一个因子和一个强度 进行着色的图 我希望每个因素都是不同的颜色 并且我希望强度是白色和该颜色之间的渐变 到目前为止 我已经使用了诸如对因子进行分面等技术 将颜色设置为两个变量之间的相互作用 并将颜色设置为因子并
  • 从 leafletProxy() 返回渲染的传单地图

    是否可以在渲染后在 Shiny 中检索传单地图 下面是一个代码示例 展示了如何生成地图leaflet 与返回的不同leafletProxy 即使它们在渲染时看起来完全相同 是否有一个功能可能不同于leafletProxy 获取实际的 htm
  • 如何在R中安装pivot_long()和pivot_wide()

    如果您想尝试这些新功能 pivot wide and pivot long 需要安装开发版tidyr devtools install github tidyverse tidyr 但我还没有实现它 我安装了一系列库 除了一个之外 vctr
  • R xts 对象中从每日时间序列到每周时间序列

    我正在使用 Zoo 和 xts 包来分析财务数据 ts 包不太合适 因为金融系列有周末 没有可用数据 我读到了 xts 包中可用的 apply 函数 apply daily x FUN apply weekly x FUN apply mo
  • 是否可以创建根据输入对象名称自行命名的列表?

    能够创建 R 列表对象而无需指定每个元素的名称对我来说非常有帮助 例如 a1 lt 1 a2 lt 20 a3 lt 1 20 b lt list a1 a2 a3 inherit name TRUE gt b a1 1 1 a2 1 20
  • 如何自动替换多个文件的文本内容中的字符?

    我有一个文件夹 myfolder包含许多乳胶表 我需要替换其中每个字符 即替换任何minus sign by an en dash 只是为了确定 我们正在替换连字符INSIDE该文件夹中的所有 tex 文件 我不关心 tex 文件名 手动执
  • 使用 ggplot 为各个图例值选择所选颜色(HSV 或 HCL 或 RGB)

    我有一个类似这样的数据集 data lt read table text Me EE PE DE TE DEE CE 1 1 1 4 5 2000 0 50 0 2547 0 69 2 1 2 2 4 3000 NA 0 5896 2 56
  • R 中的 aov() 错误术语:bw Error(id) 和 Error(id/timevar) 规范有什么区别?

    两者有什么区别aov depvar timevar Error id 和aov depvar timevar Error id timevar 配方规格 这两种变体产生略有不同的结果 同样的问题曾经在这里被问过 https stats st
  • 从拟合的 lm 或 glm [R] 获取每个因子水平(以及交互作用)的数据数量

    我在 R 中有一个逻辑回归模型 其中所有预测变量都是分类变量而不是连续变量 除了响应变量 它显然也是分类 二元变量 打电话时summary model name 有没有办法在每个因子水平中包含一个表示观测值数量的列 我在 R 中有一个逻辑回
  • Pyspark - 一次聚合数据帧的所有列[重复]

    这个问题在这里已经有答案了 我想将数据框分组到单个列上 然后对所有列应用聚合函数 例如 我有一个包含 10 列的 df 我希望对第一列 1 进行分组 然后对所有剩余列 均为数字 应用聚合函数 sum 与此等效的 R 是 summarise
  • 在并行包中的 R 的 par*apply 函数内部使用 Rcpp 函数

    我试图了解背后发生的事情Rcpp sourceCpp 调用并行环境 最近 问题中部分解决了这个问题 在 Windows 上使用 parLapply 中的 Rcpp 函数 https stackoverflow com questions 2

随机推荐

  • 使用PHP批量删除域共享联系人

    我正在使用 Google API PHP客户端库 v2 1 3 https github com google google api php client 我正在关注以下文档域共享联系人 https developers google co
  • 使 saxon-c 在 Python 中可用

    我刚刚读到 Saxon 现在可用于 Python 这非常有趣而且很好 但是任何人都可以写一篇关于如何使其可用于 Python Anaconda WingIDE 或类似的教程吗 我习惯于使用 pip 或 conda 安装 并指向一个包 轮子以
  • xcode 5 问题:“iOS 模拟器无法安装应用程序”

    我刚刚将我的 xcode 版本升级到 5 0 运行应用程序 2 3 次后 它给我这样的错误 iOS模拟器无法安装应用程序 这在旧的 xcode 中工作正常 当我重置模拟器时 它工作正常 但这一次又一次令人恼火 谁能告诉我真正的问题是什么 我
  • DateTimePicker 显示今天的日期而不是显示其实际值

    我们在表单上的自定义用户控件上有几个 DateTimePicker 它们是可见的 但未启用 仅用于显示目的 当加载 UserControl 时 DateTimePicker 会从来自 DataSet 的 DataRow 分配值 该 Data
  • 什么时候需要在 Ruby C 扩展中声明易失性值?

    我找不到太多关于何时适合声明的文档VALUE as volatileRuby 扩展中以避免过早对正在使用的对象进行垃圾回收 这是我到目前为止所学到的 有人可以填空吗 When volatile does not需要使用 在 C 对象成员中
  • 获取线程的输出

    您认为获取线程工作结果的最佳方式是什么 想象一个线程执行一些计算 如何警告主程序计算已完成 您可以每隔 X 毫秒轮询一些名为 作业完成 的公共变量或顺便说一句 但是您会收到比可用结果更晚的结果 主代码将浪费时间等待它们 另一方面 如果您使用
  • 如何从文件(即 SVG)创建 CGPath

    是否可以从给定文件创建 CGPath SVG 是首选 但任何东西都可以 袖珍SVG https github com arielelkin PocketSVG会将 SVG 文件转换为 UIBezierPath 从中您可以获得 CGPath
  • Mac OS X 上的 Heroku Local 和 PHP

    目前 除了始终在线的 apache 代理 php fpm 之外 我只使用额外的终端选项卡来手动启动工作进程和时钟进程 当我开始使用heroku时 我尝试了heroku local 但它的设置打败了我 现在我想再试一次 我在 High Sie
  • 在 Keras 中,LSTM 状态何时在 model.predict 调用中重置?

    该模型将 LSTM 作为第一层 当调用 model predict 时 假设您传递了几个样本 gt sam np array 5 6 3 6 6 3 5 6 3 gt model predict sam array 0 23589483 0
  • 为什么 ShutdownHookThread 'setDaemon true'

    我最近需要向我拥有的 Scala 应用程序添加一个关闭钩子 我发现 Scala 为此提供了一个帮助程序 称为关闭钩子线程 http www scala lang org api 2 9 0 index html scala sys Shut
  • 为什么我的 Office 365 OAuth2 刷新令牌总是很快过期?

    我知道 Office 365 刷新令牌会在用户更改密码时过期 但我发现我的客户几乎每周都会过期 在 Azure 中设置 OAuth2 应用程序时是否存在配置错误 通常 访问令牌持续 1 小时 刷新令牌持续 14 天 根据文件授权码授予流程
  • 异步读取进程输出时的延迟

    我正在使用 NET 和 C 启动一个进程并异步读取它的输出 我的问题是 在我的程序读取输出之前似乎存在延迟 如果我在命令行上运行可执行文件 则在它开始运行时立即有输出 但是 当我使用代码运行它时 在进程退出之前不会调用 ReadOutput
  • iOS 的 Libgdx 项目在模拟器上通过 robovm 编译时显示 libgdx 启动画面?

    如何删除出现在 iOS 模拟器上但未出现在 Android 模拟器中的 libgdx 启动画面 我正在通过 robovm 编译我的 libgdx 项目 Thanks 您将需要替换 RoboVM iOS 项目的 数据 文件夹中的各种 默认 图
  • 通用类作为基会导致 XAML 错误

    我有课程customer and product 他们的相似之处在于班级Base Record 然而 其中的类型Base Record总是取决于它是否是customer or product 因此 我有Base Record一般创建的 立刻
  • Azure 逻辑应用:将 HTTP 标头密钥值提取到变量中

    我是逻辑应用程序的新手 我的逻辑应用收到一个 POST 调用 该调用在 HTTP 标头中具有键值 我希望将其提取到变量中以便稍后在工作流中进行处理 设置变量操作似乎只能访问触发器主体 我尝试以下方法通过表达式访问标头 但无法接收该值 Set
  • SSRS 在报告末尾给出空白页[重复]

    这个问题在这里已经有答案了 我的报告末尾出现了一个空白页SSRS 2005 我有页眉徽标和页脚日期值 并且我已将两者设置为打印最后一页 False 但最后一页仍然是空白的 有什么想法如何消除它吗 谢谢 此解决方案适用于 SSRS 2008
  • Angular 2 中的被动链接 - 等效项

    在 Angular 1 x 中 我可以执行以下操作来创建一个基本上不执行任何操作的链接 a href My Link a 但在 Angular 2 中 相同的标签会导航到应用程序库 Angular 2 中的等效标签是什么 Edit 它看起来
  • 在 VScode 中禁用 R-linting

    在下图中 您可以看到很多 linting highlights 例如 行不应超过 80 个字符 我正在尝试禁用 修改这些 但我不知道如何操作 使用this https learn microsoft com en us visualstud
  • select 不显示所选值

    我有一个用于新建操作和编辑操作的表单 其中一个字段是选择框 编辑时选择应显示数据库中的值 这就是我现在所拥有的 但它显示 基本 作为值 而不是 高级 作为数据库值存储 对于如何进行这项工作有什么建议吗 您应该将所选选项传递给选择的选项 ht
  • 如何通过给定条件和总和合并多行?

    我有包含 ID 时间和状态列的长格式数据 我希望通过 s 2 和 s 3 将一些状态合并到 ID 中 并对时间列进行求和 假设我有数据 ID state time 1 s 1 4 1 s 2 6 1 s 3 7 2 s 1 2 2 s 2