我有一个data.frame。它看起来像这样:
name state
Lily NY
Tom NY,NJ,
John PA,NJ
David SC,PA,NY,
Jim FL,PA
......
有100多行。如果有的话,我只想删除每个字符串中的最后一个逗号。我的目标不是删除所有最后一个字符。
使用正则表达式?假设您的数据框是DF
:
DF$state <- gsub(",$", "", DF$state)
正则表达式,$
表示出现在字符串末尾的每个逗号。该命令gsub
将第一个参数的每个实例替换为第三个参数 ( ) 中出现的第二个参数(在这种情况下,什么都没有DF$state
)。
With R 3.6.0
,我们也可以使用trimws
withwhitespace
参数指定,
DF$state <- trimws(DF$state, whitespace = ",")
DF$state
#[1] "NY" "NY,NJ" "PA,NJ" "SC,PA,NY" "FL,PA"
DF <- structure(list(name = c("Lily", "Tom", "John", "David", "Jim"
), state = c("NY", "NY,NJ,", "PA,NJ", "SC,PA,NY,", "FL,PA")),
class = "data.frame", row.names = c(NA, -5L))