ich bräuchte mal wieder fachlichen Rat bei einem Problem:
Ich habe eine Exceldatei mit Unternehmensdaten eingelesen, x (2 Spalten, 20.000 Zeilen)
In der Exceldateien gibt es das Feld "Firmen ID" (Spalte 2), wodurch ein eindeutige Zuordnung mgl. ist, diese kann jedoch mehrfach vorkommen, da in der Spalte zuvor (Spalte 1) die dazugehörigen Subcompanies aufgeführt sind. Also etwa so:
Code: Alles auswählen
Subfirma | Firmen ID
a GmbH | 12345
b GmbH | 12345
c AG | 98745
d AG | 98745
...
Code: Alles auswählen
Firmen ID | Subcompany 1 | Subcompany 2 ...
12345 | a GmbH | b GmbH ...
98745 | c AG | d AG ...
...
Code: Alles auswählen
z <- data.frame(x$Firmen.ID)
z <- unique(z)
Mein Code: Von der Logik her, soll er durch die Zeilen der Spalte Firmen ID gehen (Spalte 2), so lange, wie sie !=0 ist. Wenn der Wert der vorherigen Zelle dem der jetzigen entspricht, heißt das, dass es mehrere Subfirmen gibt. Die sollen dann jeweils in eine eigene Spalte (Laufvariable r=3; d.h. wenn es z.B. 2 Subfirmen gibt, werden diese in Spalte 3 und 4 der entsprechenden Zeile geschrieben) geschrieben werden. Falls das nicht der Fall ist, wird r wieder auf 3 gesetzt (d.h. die 3te Spalte):
Code: Alles auswählen
i <- 1
r<- 3
while(x[i,2] !=0) {
if (x[i,2] == x[i-1,2]) {
z[i,r] == x[i,1]
i <- i+1
}
else {
r <- 3
i <- i+1
}
}
Zusätzlich kommt die Fehlermeldung:
Code: Alles auswählen
Error in if (x[i, 2] == x[i - 1, 2]) { : argument is of length zero
Besten Dank und viele Grüße