ich substr bin mit den letzten drei Buchstaben aus der Stringliste abschneiden: postal_code0R: substr() ergibt sich anders in für Schleife und Vektor
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" "" "" ""
Es beseitigt einige Elemente vollständig, was würde ich gerne behalten, aber wenn ich for-Schleife für die gleiche Funktion verwende, gibt es das Ergebnis zurück, das ich möchte.
> 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" ""
Was ist der Unterschied zwischen den beiden Funktionen? Und wie bekommt man die
ohne Verwendung von for-Schleife?
Was Ausgang gewünschten ist? Möchten Sie die ersten zwei Zeichen jeder Zeichenfolge beibehalten? Wenn ja, versuche 'substr (postal_code0,1,2)'. – nicola
(1) Ich könnte den Unterschied zwischen der vektorisierten Natur der Argumente von "substring" gegenüber denen von "substr" betrachten, (2) Es könnte einfacher sein, den Note-Abschnitt von "substr" zu lesen und in die Funktion zu schauen strtrim'. – joran
Nun, das Ding ist: substr (c ("n5", "n5"), 1, nchar (postal_code0) -3) geben auch "n5", "n5" zurück. Wenn ich durch einen Variablennamenvektor ersetze, gibt es einfach nicht das gleiche Ergebnis zurück – Chumoon