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="如何实现分组&有序累计求和")