group by 分组后数据重复_R语言如何实现分组&有序累计求和

本文探讨了在R语言中遇到的问题:如何在group by分组后,根据日期升序对数值列进行累计求和。通过具体的操作过程,展示了实现这一功能的方法,并给出了最终实现的结果。
摘要由CSDN通过智能技术生成
cf42710217906948a24c894b82cc6705.png

元旦快乐

Rstudio快捷键普及
符号快捷键(window)
赋值符号“Alt+-
管道符号“%>% ” Ctrl+Shift+m

多行注释,例如:

# library(tidyverse)

# getwd()

# setwd("C:/Users/Desktop")

选中需要注释的行,键盘Ctrl+Shift+c

取消注释,重复Ctrl+Shift+c

5d46c0ca4538af28034556c008c1301c.png

1、问题描述

28de58e524edb06f637424d1e256ca66.png

问题:依据group分组,按照dat(日期)升序对num列数据累计求和并生成cum_num列

c7cc4630711662f45c1a4a5e5e92ee4f.png

5d46c0ca4538af28034556c008c1301c.png

实现过程

28de58e524edb06f637424d1e256ca66.png
# 生成演示数据集set.seed(1)da sample(dat group 1:num 1:dft group,library(dplyr)dft_c %   group_by(group) %>%   arrange(group,dat) %>%   mutate(cum_num = cumsum(num)) %>%   ungroup()
5d46c0ca4538af28034556c008c1301c.png

实现结果

28de58e524edb06f637424d1e256ca66.png
# 实现效果(数字)> dft_c# A tibble: 12 x 4   dat        group   num cum_num    1 1970-01-02 a         4       4 2 1970-01-05 a         2       6 3 1970-01-08 a         3       9 4 1970-01-10 a         1      10 5 1970-01-03 b         5       5 6 1970-01-04 b         7      12 7 1970-01-06 b         6      18 8 1970-01-09 b         8      26 9 1970-01-07 c         9       910 1970-01-11 c        12      2111 1970-01-12 c        10      3112 1970-01-13 c        11      42# 结果绘图library(ggplot2)ggplot(dft_c,mapping = aes(x=dat,y=cum_num))+  geom_line(aes(color=as.factor(group)))+  geom_point(aes(color=as.factor(group))) +  geom_text(aes(label=paste0(num,";",cum_num)))+  labs()

db17be4483d4e35235a65edf884bc1cc.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值