前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言·如何实现分组&有序累计求和

R语言·如何实现分组&有序累计求和

作者头像
拴小林
发布2021-01-12 11:24:32
3.6K0
发布2021-01-12 11:24:32
举报
文章被收录于专栏:数据驱动实践数据驱动实践
元旦快乐

Rstudio快捷键普及

符号

快捷键(window)

赋值符号“<-”

Alt+-

管道符号“%>% ”

Ctrl+Shift+m

多行注释,例如:# library(tidyverse)# getwd()# setwd("C:/Users/Desktop")

选中需要注释的行,键盘Ctrl+Shift+c取消注释,重复Ctrl+Shift+c

1、问题描述

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

实现过程

代码语言:javascript
复制
# 生成演示数据集
set.seed(1)
da <- sample(1:12,12,replace = FALSE)
dat <- lubridate::as_date(da)
group <- rep(letters[1:3],each=4)
num <- 1:12
dft <- tibble::tibble(dat,group,num) # 演示数据集

library(dplyr)
dft_c <- dft %>% 
  group_by(group) %>% 
  arrange(group,dat) %>% 
  mutate(cum_num = cumsum(num)) %>% 
  ungroup()

实现结果

代码语言:javascript
复制
# 实现效果(数字)
> dft_c
# A tibble: 12 x 4
   dat        group   num cum_num
   <date>     <chr> <int>   <int>
 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       9
10 1970-01-11 c        12      21
11 1970-01-12 c        10      31
12 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(title="如何实现分组&有序累计求和")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据驱动实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档