是否有從字符串中刪除特定字符的簡單方法?在下面的例子中,我想從矢量的每個元素中刪除最後三個字符。根據位置從字符串中刪除字符
string<-c("Autauga AL", "Bald Win Av", "Barbour AL", "Bibb AL" , "Blount At" , "Bullock AL")
是否有從字符串中刪除特定字符的簡單方法?在下面的例子中,我想從矢量的每個元素中刪除最後三個字符。根據位置從字符串中刪除字符
string<-c("Autauga AL", "Bald Win Av", "Barbour AL", "Bibb AL" , "Blount At" , "Bullock AL")
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"
值得一提的是,這個正則表達式使一切在最後一個空格之前,不會丟棄最後三個字符。對於示例數據,這兩個操作給出了相同的結果(並且這可能是OP想要的語義,儘管存在問題描述),但是可以在不同數據中看到差異。 –
是的,布賴恩這依賴於空間,因爲我認爲這是數據的樣子。如果最後的字符不一致(儘管我相信它在這種情況下),我在這裏的方法可能會有用。我之所以發佈是因爲這種方法與喬希有點不同,未來的搜索者可能會發現這種方法對他們的情況更有用。 –