我使用SUBSTR切斷從字符串列表中的最後三個字母:postal_code0R:SUBSTR()的結果在不同的for循環和矢量
postal_code0
>[1] "n14BE" "n14BE" "n14BE" "n14BE" "n14BE" "N16DD" "N16DD" "N16DD" "N16DD" "N16DD"
>[11] "N11TW" "N11TW" "N11TW" "N11TW" "N11TW" "n5" "N160LU" "N2" "N200AU" "N200AU"
>[21] "london" "n15" "N5" ""
> outcode <- substr(postal_code0, 1, nchar(postal_code0)-3)
> outcode
[1] "n1" "n1" "n1" "n1" "n1" "N1" "N1" "N1" "N1" "N1" "N1" "N1" "N1" "N1" "N1"
[16] "" "N16" "" "N20" "N20" "lon" "" "" ""
它完全消除了一些元素,我想喜歡保持,但如果我使用循環的相同功能,它會返回我想要的結果。
> outcode0 <- c()
> for (i in 1: length(postal_code0)){
+ outcode0[i] <- substr(postal_code0[i], 1, nchar(postal_code0)-3)
+ }
> outcode0
[1] "n1" "n1" "n1" "n1" "n1" "N1" "N1" "N1" "N1" "N1" "N1" "N1" "N1" "N1" "N1" "n5" "N1" "N2" "N2" "N2" "lo"
[22] "n1" "N5" ""
這兩個函數有什麼區別?以及如何獲得
outcode0
沒有使用for循環?
什麼是你想要的輸出?你想保留每個字符串的前兩個字符嗎?如果是這樣,請嘗試'substr(postal_code0,1,2)'。 – nicola
(1)我可能會考慮'substring'和'substr'的參數的向量化性質之間的差異,(2)讀'substr'的Note部分並查看函數' strtrim'。 – joran
好,事情是:substr(c(「n5」,「n5」),1,nchar(postal_code0)-3)也返回「n5」,「n5」。當我用一個變量名稱向量替換時,它只是不會返回相同的結果 – Chumoon