很抱歉重复,但我看到的解决方案无法解决我的问题。
我有一个数据框(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$"))
但这似乎不起作用。
任何提示?
答案 0 :(得分:2)
我们可以使用sub
作为一个班轮:
df$Year <- sub(".*(\\d{4})\\–?", "\\1", df$Year)
df$Year
[1] "2001" "2013" "2016" "2003" "2013" "2013" "2010"
请注意,您在年份范围内使用的破折号似乎是破折号(或者可能是破折号),而不是常规的ASCII字符。