【问题标题】:R removing selected characters from a stringR从字符串中删除选定的字符
【发布时间】:2018-10-19 07:12:20
【问题描述】:

抱歉,如有重复,但我看到的解决方案并不能解决我的问题。

我有一个数据框 (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$"))

但这似乎不起作用。

有什么提示吗?

【问题讨论】:

    标签: r database data-cleaning


    【解决方案1】:

    我们可以使用sub 做单行:

    df$Year <- sub(".*(\\d{4})\\–?", "\\1", df$Year)
    df$Year
    
    [1] "2001" "2013" "2016" "2003" "2013" "2013" "2010"
    

    Demo

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

    【讨论】:

    • 谢谢!这可以删除多年。我已将您与上述 Andre Elrico 的解决方案结合起来,整个事情都解决了,因此再次感谢你们俩。不过,我仍然不明白我的解决方案出了什么问题......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2013-04-17
    • 2018-05-30
    • 2013-02-16
    • 1970-01-01
    相关资源
    最近更新 更多