5

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

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

有100多行。如果有的话,我只想删除每个字符串中的最后一个逗号。我的目标不是删除所有最后一个字符。

4

2 回答 2

19

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

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

正则表达式,$表示出现在字符串末尾的每个逗号。该命令gsub将第一个参数的每个实例替换为第三个参数 ( ) 中出现的第二个参数(在这种情况下,什么都没有DF$state)。

于 2013-10-21T00:53:21.383 回答
2

With R 3.6.0,我们也可以使用trimwswithwhitespace参数指定,

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))
于 2019-06-20T03:17:21.950 回答