首页 > 解决方案 > 在R中将字符串值转换为日期

问题描述

我有一张如下表:

Year  Appearances
18/19     4
18/19     5
17/18     10
17/18     13
16/17     22
16/17     19

我有办法将 18/19 转换为 2019 吗?

还有有没有办法把每年的所有“外观”都加起来?我完美的输出表是:

Year  Appearances
2019     9
2018     23
2017     41

谢谢 :)

标签: r

解决方案


我们可以\\d+在开头 ( ^) 删除一个或多个数字 ( ),然后将/(with str_remove) 与“20” ( str_c) 连接,将其用作分组变量并获得sum“外观”

library(tidyverse)
df1 %>% 
  group_by(Year = str_c("20", str_remove(Year, "^\\d+\\/"))) %>% 
  summarise(Appearances = sum(Appearances))
# A tibble: 3 x 2
#  Year  Appearances
#  <chr>       <int>
#1 2017           41
#2 2018           23
#3 2019            9

数据

df1 <- structure(list(Year = c("18/19", "18/19", "17/18", "17/18", "16/17", 
"16/17"), Appearances = c(4L, 5L, 10L, 13L, 22L, 19L)), 
   class = "data.frame", row.names = c(NA, 
 -6L))

推荐阅读