【发布时间】:2013-10-11 16:58:28
【问题描述】:
有没有一种简单的方法可以从字符串中删除特定字符。在下面的示例中,我想从向量的每个元素中删除最后三个字符。
string<-c("Autauga AL", "Bald Win Av", "Barbour AL", "Bibb AL" , "Blount At" , "Bullock AL")
【问题讨论】:
标签: r
有没有一种简单的方法可以从字符串中删除特定字符。在下面的示例中,我想从向量的每个元素中删除最后三个字符。
string<-c("Autauga AL", "Bald Win Av", "Barbour AL", "Bibb AL" , "Blount At" , "Bullock AL")
【问题讨论】:
标签: r
strtrim 和 nchar 呢?
strtrim(string, nchar(string)-3)
# [1] "Autauga" "Bald Win" "Barbour" "Bibb" "Blount" "Bullock"
你也可以使用“stringi”包:
library(stringi)
stri_sub(string, 1, -4)
# [1] "Autauga" "Bald Win" "Barbour" "Bibb" "Blount" "Bullock"
stri_sub 的默认值是 to = -1L,因此要删除最后三个字符,它是 -1 - 3 = -4。
【讨论】:
使用gsub(),删除$ 前面的三个字符(表示“字符串结尾”的正则表达式字符):
gsub(".{3}$", "", string)
[1] "Autauga" "Bald Win" "Barbour" "Bibb" "Blount" "Bullock"
【讨论】:
另一种正则表达式方法:
gsub("(.*)\\s.*", "\\1", string)
## [1] "Autauga" "Bald Win" "Barbour" "Bibb" "Blount" "Bullock"
【讨论】: