我使用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