将字符串值转换为R中的日期

时间:2019-02-26 17:08:50

标签: 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

谢谢:)

3 个答案:

答案 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结合在一起。