Ich habe ein kleines Problem.
Ich arbeite gerade mit dem Bundesliga-Datensatz aus dem wikibooks Package. Über
Code: Alles auswählen
Bundesliga.Tabelle("1963/1964", Spieltag=5, output="Tabelle")
bekomme ich die jeweilige Tabelle zum angegebenen Spieltag der angegebenen Saison.
Was ich jetzt haben will, ist ein data.frame das mir einfach alle Tabellen untereinander schreibt, mit den beiden zusätzlichen Spalten "Saison" und "Spieltag". Dafür habe ich mir eine dreifache for-Schleife geschrieben:
Code: Alles auswählen
#Alle Tabellen in einem data.frame
AlleTabellen<-data.frame(Saison=factor(), Spieltag=numeric(), Platz=numeric(), Mannschaft=character(),
Spiele=numeric(), G=numeric(), U=numeric(), V=numeric(), Tore=numeric(), Gegentore=numeric(),
Diff=numeric(), Punkte=numeric())
VektorSaisons<-rep("",44) #schreibt 1963/1964,....2006/2007 in einen Vektor
for (i in 1:44)
{
VektorSaisons[i]<-paste (c(i+1962,"/",i+1963), collapse="")
}
for (i in 1:length(VektorSaisons)) #for-Schleife um die Saisons durchzugehen
{
VektorSpieltage<-c(1:((nrow(Bundesliga.Tabelle(VektorSaisons, Spieltag=3, output="Tabelle")))*2-2))
VektorTabellenplatz<-c(1:(length(VektorSpieltage)/2+1))
for (j in 1:length(VektorSpieltage)) #for-Schleife um Spieltage durchzugehen
{
for (k in 1:length(VektorTabellenplatz)) #for-Schleife zum eintragen
{
Tabelle<-Bundesliga.Tabelle(VektorSaisons[i], Spieltag=VektorSpieltage[j], output="Tabelle") #Tabelle aufrufen, die jetzt hinzugefügt werden soll
NeueZeile<-data.frame(VektorSaisons[i], VektorSpieltage[j], Tabelle[VektorTabellenplatz[k],1], Tabelle[VektorTabellenplatz[k],2],
Tabelle[VektorTabellenplatz[k],3],Tabelle[VektorTabellenplatz[k],4],Tabelle[VektorTabellenplatz[k],5],
Tabelle[VektorTabellenplatz[k],6],Tabelle[VektorTabellenplatz[k],7],Tabelle[VektorTabellenplatz[k],8],
Tabelle[VektorTabellenplatz[k],9],Tabelle[VektorTabellenplatz[k],10])#Erstellung einer neuen Zeile für den data.frame
AlleTabellen<-rbind(AlleTabellen,NeueZeile) #Neue Zeile hinzufügen
}
}
}
Code: Alles auswählen
Fehler in Tabelle$t[Tabelle$Mannschaft == gast] <- (Tabelle$t[Tabelle$Mannschaft == :
Ersetzung hat Länge 0
Zusätzlich: Es gab 26 Warnungen (Anzeige mit warnings())
Code: Alles auswählen
> warnings()
Warnmeldungen:
1: In if (saison == "1963/1964" | saison == "1964/1965") { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
2: In if (regel.test == TRUE) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
3: In is.na(e1) | is.na(e2) : Länge des längeren Objektes
ist kein Vielfaches der Länge des kürzeren Objektes
4: In `==.default`(Bundesliga$Saison, saison) : Länge des längeren Objektes
ist kein Vielfaches der Länge des kürzeren Objektes
5: In if (Saison == "1993/1994") { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
6: In if (Saison == "1999/2000") { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
7: In if (Saison == "2003/2004") { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
8: In Tabelle$g[Tabelle$Mannschaft == gast] <- (Tabelle$g[Tabelle$Mannschaft == ... :
Anzahl der zu ersetzenden Elemente ist kein Vielfaches der Ersetzungslänge
9: In if (gast.tore == heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
10: In if (gast.tore < heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
11: In if (gast.tore > heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
12: In Tabelle$t[Tabelle$Mannschaft == heim] + heim.tore :
Länge des längeren Objektes
ist kein Vielfaches der Länge des kürzeren Objektes
13: In Tabelle$g[Tabelle$Mannschaft == gast] <- (Tabelle$g[Tabelle$Mannschaft == ... :
Anzahl der zu ersetzenden Elemente ist kein Vielfaches der Ersetzungslänge
14: In if (gast.tore == heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
15: In if (gast.tore < heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
16: In if (gast.tore > heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
17: In Tabelle$g[Tabelle$Mannschaft == gast] <- (Tabelle$g[Tabelle$Mannschaft == ... :
Anzahl der zu ersetzenden Elemente ist kein Vielfaches der Ersetzungslänge
18: In if (gast.tore == heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
19: In if (gast.tore < heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
20: In if (gast.tore > heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
21: In Tabelle$t[Tabelle$Mannschaft == heim] + heim.tore :
Länge des längeren Objektes
ist kein Vielfaches der Länge des kürzeren Objektes
22: In Tabelle$g[Tabelle$Mannschaft == gast] <- (Tabelle$g[Tabelle$Mannschaft == ... :
Anzahl der zu ersetzenden Elemente ist kein Vielfaches der Ersetzungslänge
23: In if (gast.tore == heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
24: In if (gast.tore < heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
25: In if (gast.tore > heim.tore) { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt
26: In if (Saison == "1971/1972") { ... :
Bedingung hat Länge > 1 und nur das erste Element wird benutzt