我有一个data.frame。它看起来像这样:
name state
Lily NY
Tom NY,NJ,
John PA,NJ
David SC,PA,NY,
Jim FL,PA
......
有超过100行。我只想删除每个字符串中的最后一个逗号。我的目标不是删除所有最后一个角色。
答案 0 :(得分:11)
使用正则表达式?假设您的数据框为DF
:
DF$state <- gsub(",$", "", DF$state)
正则表达式,$
表示发生在字符串末尾的每个逗号。命令gsub
将第一个参数的每个实例替换为第三个参数(DF$state
)中出现的第二个参数(在本例中为nothing)。
答案 1 :(得分:1)
对于R 3.6.0
,我们还可以将trimws
与whitespace
参数一起使用,指定,
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))