删除R中字符串中的第一个星号或短划线

时间:2013-12-09 02:53:34

标签: regex string r

我有一个data.frame。它看起来像这样:

name    state
Lily    *NY
Tom     NY,NJ
John    -PA,NJ
David   *SC,PA,NY
Jim     FL,PA
......

我想在R中清理我的数据框。如果状态的第一个字符是字母或数字,请保留它。但如果第一个字符是星号或破折号,请将其删除。我的目标不是删除每个第一个字符,所以我不能使用子字符串。有解决方案吗非常感谢!

2 个答案:

答案 0 :(得分:1)

你可以这样做:

df$state <- sub("^[\\*-]", "", df$state)

答案 1 :(得分:1)

如果您希望仅在字母或数字时保留第一个字符,则为更通用的解决方案:

df$state <- sub("^[^[:alnum:]]", "", df$state)