我有一个如下表:
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
谢谢:)
答案 0 :(得分:2)
我们可以在开头(\\d+
)处删除一个或多个数字(^
),然后删除与“ 20”({ {1}}),将其用作分组变量并获得“外观”的/
str_remove
str_c
答案 1 :(得分:1)
您可以在R基上使用此单线。
aggregate(
Appearances ~ Year,
transform(df, Year = sub(".*/(.*)", "20\\1", Year)),
sum
)
# Year Appearances
# 1 2017 41
# 2 2018 23
# 3 2019 9
答案 2 :(得分:0)
使用dplyr
的另一种sub()
可能性是:
df %>%
group_by(Year = paste0("20", sub(".*/", "", Year))) %>%
summarise_all(sum)
Year Appearances
<chr> <int>
1 2017 41
2 2018 23
3 2019 9
它提取/
之后的字符并将它们与20组合在一起。
或使用substr()
:
df %>%
group_by(Year = paste0("20", substr(Year, nchar(Year)-1, nchar(Year)))) %>%
summarise_all(sum)
此处提取了“年份”中的最后两个字符,并将它们与20结合在一起。