Seite 1 von 2
Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: So Aug 05, 2018 6:42 pm
von leonard_24
Hallo nochmal
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
Kann mir jemand den Fehler sagen?
Gruß
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: So Aug 05, 2018 8:04 pm
von jogo
Hallo Leonard,
das geht ohne Schleife, weil R mit ganzen Vektoren arbeitet:
Test:
Gruß, Jörg
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: Mo Aug 06, 2018 2:23 pm
von bigben
Während Jörgs Vorgehen das ganz klar bessere ist, beantwortet das aber noch nicht die Frage, wo der Fehler her kommt.
Was gibt R denn aus, wenn Du
eingibst. Bzw was bei
?
Wenn das den Fehler nicht erklärt, was passiert bei
LG,
Bernhard
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: Mo Aug 06, 2018 7:47 pm
von leonard_24
jogo hat geschrieben: ↑So Aug 05, 2018 8:04 pm
Hallo Leonard,
das geht ohne Schleife, weil R mit ganzen Vektoren arbeitet:
Test:
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
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: Mo Aug 06, 2018 7:49 pm
von leonard_24
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.
Was gibt R denn aus, wenn Du
eingibst. Bzw was bei
?
Wenn das den Fehler nicht erklärt, was passiert bei
LG,
Bernhard
Wenn ich str(x) mache, kommt:
data.frame': 99 obs. of 10 variables:
$ ID : chr "WBEB_4123_ID" "EIÖI_2872_ID" "MSPS_1564_ID" "BLÖL_1074_ID" ...
$ Firma : chr "Walmart" ...
...
also so wie es sein sollte. Mit str(x[1,1]) kommt chr "WBEB_4123_ID"
Den Fehler habe ich also bisher noch nicht gefunden...
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: Mo Aug 06, 2018 8:35 pm
von jogo
leonard_24 hat geschrieben: ↑Mo Aug 06, 2018 7:47 pm
jogo hat geschrieben: ↑So Aug 05, 2018 8:04 pm
das geht ohne Schleife, weil R mit ganzen Vektoren arbeitet:
Test:
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
zu rechnen:
oder möchtest Du lieber schreiben:
Gruß, Jörg
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: Mo Aug 06, 2018 11:44 pm
von EDi
Polnische Notation?
https://en.m.wikipedia.org/wiki/Polish_notation
oder möchtest Du lieber schreiben:G
Gruß, Jörg
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: Di Aug 07, 2018 8:00 am
von bigben
jogo hat geschrieben: ↑Mo Aug 06, 2018 8:35 pm
NEin, sowas möchte ich nicht schreiben. Wenn schon Praefixnotation, dann auch konsequent:
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: Di Aug 07, 2018 8:14 am
von jogo
sehr gut!
Da ist mir wieder ein Schmankerl entwischt.
Danke, Bernhard, Du hast mich auf meine erste Frage auf SO gebracht:
https://stackoverflow.com/questions/517 ... s-an-error
Gruß, Jörg
Re: Mit while durch Excelfile gehen und Änderungen vornehmen
Verfasst: Di Aug 07, 2018 10:47 am
von leonard_24
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