のために私は、文字列のリストから最後の3つの文字を遮断するために、SUBSTRを使用しています:postal_code0R:SUBSTR()の結果は、異なるループとベクトル
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" ""
2つの機能の違いは何ですか?と入手方法
outcode0
forループを使用しないで?
ご希望の出力は何ですか?各文字列の最初の2文字を保持しますか?もしそうなら、 '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