2016-09-13 63 views
1

之前拆分字符串兩個字符這是一個類似的問題to this previous query.的R - 結束

然而,這一次我希望字符串結束前兩個字符分割郵政編碼起來。我該怎麼做?

例如,我有R中,看起來像這樣郵政編碼數據,有過去除中央空間:

Postcodes 
AB46JK 
AR148UI 
D49IK 
CB39EU 

但我想的郵政編碼分成郵編部門,現在包括前兩個字符一切字符串的結尾,以便它們看起來像這樣:

Postcodes 
AB46 
AR148 
D49 
CB39 

幫助將不勝感激。

回答

4

基地R,非正則表達式的解決方案:

substring(postcodes, 1, nchar(postcodes)-2) 
2
gsub("(.*).{2}$","\\1",postcodes) 
1

您可以使用sub

sub("..$", "", df$Postcodes) 
# [1] "AB46" "AR148" "D49" "CB39" 

或者extracttidyr

library(tidyr) 
df %>% extract(Postcodes, "Postcodes", "(.*)..$") 
# Postcodes 
#1  AB46 
#2  AR148 
#3  D49 
#4  CB39 
3

這裏有一個非正則表達式的解決方案。您可以使用位置通過包stringrstr_sub將每個字符串中的所有內容從開頭拉到3。

library(stringr) 
str_sub(c("AB46JK", "AR148UI", "D49IK", "CB39EU"), 1, -3) 

[1] "AB46" "AR148" "D49" "CB39"