Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R-按条件累加和

R-按条件累加和
EN

Stack Overflow用户
提问于 2013-09-20 20:48:05
回答 3查看 23.4K关注 0票数 16

所以我有一个简化的数据集,看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Year    ID     Sum
2009    999    100
2009    123     85
2009    666    100
2009    999    100
2009    123     90
2009    666     85
2010    999    100
2010    123    100
2010    666     95
2010    999     75
2010    123    100
2010    666     85

我想添加一个列,其中包含按年份和ID计算的累计和。如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Year     ID     Sum    Cum.Sum
2009    999     100        100
2009    123      85         85  
2009    666     100        100  
2009    999     100        200
2009    123      90        175
2009    666      85        185
2010    999     100        100
2010    123     100        100
2010    666      95         95
2010    999      75        175
2010    123     100        200
2010    666      85        180

我认为这应该是非常直截了当的,但不知何故,我还没能弄清楚。我该怎么做呢?谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-20 20:53:50

使用data.table

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require(data.table)
DT <- data.table(DF)
DT[, Cum.Sum := cumsum(Sum), by=list(Year, ID)]

    Year  ID Sum Cum.Sum
 1: 2009 999 100     100
 2: 2009 123  85      85
 3: 2009 666 100     100
 4: 2009 999 100     200
 5: 2009 123  90     175
 6: 2009 666  85     185
 7: 2010 999 100     100
 8: 2010 123 100     100
 9: 2010 666  95      95
10: 2010 999  75     175
11: 2010 123 100     200
12: 2010 666  85     180
票数 36
EN

Stack Overflow用户

发布于 2013-09-20 21:00:05

另一种方式

1)使用ddply将变量按group求和(类似SQL group by)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
X <- ddply ( dataset, .(Year,ID), sum)

2)将结果与数据集合并

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Y <- merge( dataset, X, by=('Year','ID')
票数 1
EN

Stack Overflow用户

发布于 2020-11-14 01:35:52

您可以使用dplyr和基本函数cumsum

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require(dplyr)    

dataset %>% 
  group_by(Year, ID) %>%
  mutate(cumsum = cumsum(Sum)) %>%
  ungroup()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18925600

复制
相关文章
镗刀在加工中出现颤振的主要原因分析
镗刀是采用的数显读数屏的精密镗头,在使用精镗刀加工时,也会出现不同的问题。加工中心镗孔时由于切屑的流出方向在不断地改变,所以刀尖、工件的冷却以及切屑的排出都要比车床加工时难的多。特别是用卧式加工中心进行钢的盲孔粗镗加工时,尤为困难。镗孔加工时最常出现的、也是最令人头疼的问题是颤振。今天我们来分析下镗刀发生颤振的主要原因有哪些:
lrglu
2022/05/16
2.6K0
镗刀在加工中出现颤振的主要原因分析
案例:数控机床主轴校准与颤振监测系统
提高生产数量与产品质量始终是制造业努力追求的目标,工业4.0更勾勒出智能制造的美好愿景,促使被制造业视为是重要生产设备的CNC工具机(数控机床)也得因应这样的趋势不断地精益求精。而数控机床制造商在积极改善自家机器性能并提升加工精度以符合客户需求的过程中,机器校准正确与否是影响加工精度的重要因素之一。但一直以来制造业都是靠累积多年经验的老师傅来进行机器校准,工厂每日必须先以这种传统作法来检查设备才能正式开工;如果该厂需要制造的产品种类较多,每一次产线调整时还得再次为机器重新设定与校准。如此不科学的作业模式既繁琐又费时,一旦作业程序有所疏失就会发生加工精度失准的问题。
SHOUT
2022/05/31
2.9K0
案例:数控机床主轴校准与颤振监测系统
在ListView中实现排序
ListView触发数据源排序,使用数据源(即List<T>)的Sort()方法,又一次绑定数据源到ListView。
全栈程序员站长
2022/09/06
1.3K0
在 Android 12 中构建更现代的应用 Widget
从 2008 年开始,Widget 就一直是 Android 系统的一个重要组成部分,也是自定义主屏幕的一个重要方面。您可以将 Widget 理解为一个 "一目了然" 的应用视图,让用户在无需从主屏幕打开应用的前提下,就能对应用数据和核心功能一览无余。但是从 Android 推出至今,AppWidget 的 API 基本就没有什么大的变化,从 2012 年到 2021 年更是只有一个 Android 版本包含了对 AppWidget API 的更新。而随着 Android 12 的推出,也带来了 Widget API 一些亟需改进的更新。
Android 开发者
2022/03/25
2.2K0
在 Android 12 中构建更现代的应用 Widget
尴尬:在zoom中找不到会议密码
临时要开一个zoom会议,点击“新会议”进入,然后邀请其他与会者。 “会议” - “复制邀请链接”, 得到一行这样的信息(会议号已模糊处理) https://oracle.zoom.us/j/99
Alfred Zhao
2022/10/31
2.8K0
MCM数控机床切削颤振监测与大数据分析系统构建(一)
在金属切削加工过程中,刀具与工件之间剧烈的自激振动通常被称为“颤振”。机床颤振会使加工过程变得不稳定,造成加工表面质量和金属切削率的下降,引起加工工件的表面精度和光洁度下降,降低刀具使用寿命和生产率,严重时甚至会破坏刀具和机床。因此,颤振成为提高机床加工能力的最主要障碍。
SHOUT
2022/05/31
2.7K0
MCM数控机床切削颤振监测与大数据分析系统构建(一)
【Flutter 15】图解 ListView 不同样式 item 及 Widget 显隐性
一年一度的谷歌大会又开始了,谷歌对 Flutter 的投入力度又加大了,所以更得好好学 Flutter 了。和尚在做新闻列表方面的 Demo 时,想到会在列表中展示多种不同 item 样式,今天特意借助上一篇关于 ListView 的小例子 稍微调整一下,测试 ListView 中多种 item 样式展示方式。
阿策小和尚
2019/08/12
2.8K0
【Flutter 15】图解 ListView 不同样式 item 及 Widget 显隐性
listview优化(中)
1,对Imageview使用setTag()方法来解决图片错位问题,这个Tag中设置的是图片的url,然后在加载的时候取得这个url和要加载那position中的url对比,如果不相同就加载,相同就是复用以前的就不加载了 2,对于要加载的图片资源,先在内存缓存中找(原始的方法是使用SoftRefrence,最新的方法是使用android提供的Lrucache),如果找不到,则在本地缓存(可以使用DiskLrucache类)中找(也就是读取原先下载过的本地图片),还找不到,就开启异步线程去下载图片,下载以
xiangzhihong
2018/01/30
1.1K0
Mybatis在IDEA中找不到mapper映射文件
这个问题的解决方法就是在pom.xml文件中加上配置,让编译器把src/main/java目录下的xml文件一同编译到classes文件夹下。
别先生
2020/12/09
3.6K0
flutter中Widget 渲染过程
然后,通过Element树构建RenderObject对象;并将RenderObject对象挂载到Element树上。
挥刀北上
2021/01/05
9990
flutter中Widget 渲染过程
"org.jacoco.agent.rt" 在 maven 中找不到
看起来没有,不提供源码 https://github.com/jacoco/jacoco/issues/207
JavaEdge
2021/02/22
1.6K0
"org.jacoco.agent.rt" 在 maven 中找不到
解决问题:在Linux中找不到wget命令
Linux作为一个广泛使用的操作系统,被广泛用于服务器和开发环境。在Linux上执行命令是日常工作中的常见任务,然而,有时候可能会遇到一些问题。本文将重点解决一个常见问题:在Linux系统中找不到wget命令。我们将通过参考howtouselinux.com上的相关文章来解决这个问题,并提供详细的解决方法和示例。
用户10665603
2023/07/31
1.5K0
WPF中ListView排序
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
5160
在 django 中如何自定义 widget(控件)适用于 xadmin
上篇文章介绍了怎么把django自带的admin替换成xadmin,这篇文章介绍下怎么自定义一个django的widget,关于widget的使用在django的admin和xadmin中均适用。
the5fire
2019/03/01
2.3K0
Android中动态更新ListView
在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中。 实现步骤:调用ListView的setOnScrollListener()方法设置滑动监听器,实现OnScrollListener接口的方法,判断当列表滑动到最低端时,加载新的列表项。 其中OnScrollListener接口需要实现如下两个方法: onScroll(AbsListView view, int firstVisibleItem, int
欢醉
2018/01/22
2K0
Widget模式
Widget模式是指借用Web Widget思想将页面分解成组件,针对部件开发,最终组合成完整的页面,Web Widget指的是一块可以在任意页面中执行的代码块,Widget模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的架构型设计模式。
WindRunnerMax
2021/01/14
1.1K0
车床震颤的原因及排除
如果您的刀具过度磨损,切削产生的切削力将会增加。这些增加的切削力会导致切削过程中出现颤动。
lrglu
2023/09/19
1.1K0
车床震颤的原因及排除
android中ListView的用法[通俗易懂]
地址:https://www.cnblogs.com/s-y-j/p/6548032.html
全栈程序员站长
2022/09/06
9610
android中ListView的用法[通俗易懂]
ListView使用技巧-更新中
虽然在Android5.X中,RecyclerView在很多地方组件取代了ListView,但是ListView的使用依然是分广泛。
小小工匠
2021/08/16
9610
点击加载更多

相似问题

颤振ListView.builder在<Widget>[]

12

颤振ListView和列表Widget

21

在颤振中将Widget置于ListView之上

10

颤振: ListView中动态大小的Widget

12

颤振: Stack Widget中的Listview Builder水平

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文