删除字符串中的最后一个逗号

时间:2013-10-21 00:50:42

标签: regex r

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

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

有超过100行。我只想删除每个字符串中的最后一个逗号。我的目标不是删除所有最后一个角色。

2 个答案:

答案 0 :(得分:11)

使用正则表达式?假设您的数据框为DF

DF$state <- gsub(",$", "", DF$state)

正则表达式,$表示发生在字符串末尾的每个逗号。命令gsub将第一个参数的每个实例替换为第三个参数(DF$state)中出现的第二个参数(在本例中为nothing)。

答案 1 :(得分:1)

对于R 3.6.0,我们还可以将trimwswhitespace参数一起使用,指定,

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))