habe folgendes Problem: Ich habe eine eingelesene Exceldatei (2 Spalten, ID und Firma) und möchte nun mittels einer Schleife durch die ID-Spalte gehen und die Zeichen "_" sowie "ID" entfernen, sodass z.B. in der ersten Zeile aus "WBEB_4123_ID" "WBEB4123" wird. Die Daten sind in der Variable "x" gespeichert.
Mein Code bisher:
n <- 1
while (x[n,1] != "") {
gsub ("_", "",x[n,1])
sub ("ID","", x[n,1])
n=n+1
}
Leider kommt als Fehlermeldung:
Error in while (x[n, 1] != " ") { : missing value where TRUE/FALSE needed
y <- "WBEB_4123_ID"
gsub("_", "", sub("ID$", "", y))
Gruß, Jörg
Danke! Wusste gar nicht, dass das ohne Schleife geht
Kannst du mir vllt. kurz den Syntax erklären? Warum kann man den "sub" in den "gsub" reinschachteln, ohne, dass bei der "gsub" Funktion die Spalte als letztes Element in der Funktion auftaucht?
Viele Grüße
Zuletzt geändert von leonard_24 am Mo Aug 06, 2018 7:54 pm, insgesamt 1-mal geändert.
bigben hat geschrieben: Mo Aug 06, 2018 2:23 pm
Während Jörgs Vorgehen das ganz klar bessere ist, beantwortet das aber noch nicht die Frage, wo der Fehler her kommt.
y <- "WBEB_4123_ID"
gsub("_", "", sub("ID$", "", y))
Danke! Wusste gar nicht, dass das ohne Schleife geht
Es ist in R ganz selten, dass eine explizite Schleife wirklich notwendig ist.
Kannst du mir vllt. kurz den Syntax erklären? Warum kann man den "sub" in den "gsub" reinschachteln, ohne, dass bei der "gsub" Funktion die Spalte als letztes Element in der Funktion auftaucht?
Die Dokumentation von sub() sagt im Abschnitt Value, dass als Ergebnis die veränderte Zeichenkette bzw. der char-Vektor zurückgliefert wird.
Na ja, und dieser Vektor wird gleich weiter verarbeitet.
Das ist nicht sehr viel anders als statt
danke an euch! Hat vielleicht trotzdem einer eine Idee, warum die While Schleife nicht funktioniert.
Ich brauche nämlich dringend den Fehler, da meine Aufgabe, denke ich, nur mit einer while - Schleife funktioniert. Hier das Problem: (Ich erwarte nicht, dass mir irgendjemand einen Code gibt, nur eine Idee, warum mein Code nicht funktioniert):
Das Problem ist nämlich, ich arbeite mit einer Datenbank, die viele Firmen enthält; für jede gibt es eine Excelfile mit unterschiedlich vielen Entitäten. Jede Firma hat eine bestimmte Menge an Standardspalten (z.B. A bis O) wobei jede eine unterschiedliche Anzahl an zusätzlichen Spalten (Nr.1... Nr.n) besteht. Das Ziel ist es nun, abhängig von der Zeilenzahl und Spaltenzahl, jeweils durch die einzelnen Spalten zu gehen und diese Korrektur durchführen (bestimmtes Zeichen ersetzen). D.h. Spalte "Nr.1" soll durch alle Zeilen gehen und die Substitution durchgehen, anschließend Spalte "Nr.2" usw. bis man zur Spalte "Nr.n" gekommen ist.
Viele Grüße
Zuletzt geändert von leonard_24 am Di Aug 07, 2018 11:29 am, insgesamt 1-mal geändert.