R从字符串中删除选定的字符

时间:2018-05-09 08:27:15

标签: r database data-cleaning

很抱歉重复,但我看到的解决方案无法解决我的问题。

我有一个数据框(df)。其中一个变量(df $ Year)包括年份列表,例如:

 > df$Year

 Year
 2001–                       
 2013–                     
 2016–                      
 2003–                      
 2012–2013                      
 2013–                      
 1993–2007, 2010–

如果是多年,我只想保留最后一个(即不是'1993-2007,2010-'仅'2010')并摆脱' - '。 然而,我尝试过:

unlist(str_extract_all(df$Year, "[[:digit:]]4$"))

但这似乎不起作用。

任何提示?

1 个答案:

答案 0 :(得分:2)

我们可以使用sub作为一个班轮:

df$Year <- sub(".*(\\d{4})\\–?", "\\1", df$Year)
df$Year

[1] "2001" "2013" "2016" "2003" "2013" "2013" "2010"

Demo

请注意,您在年份范围内使用的破折号似乎是破折号(或者可能是破折号),而不是常规的ASCII字符。