Problem mit R

Fragen und Diskussionen rund um die Statistik und deren Anwendung.
Antworten
Peacem4ker
Beiträge: 2
Registriert: 21.03.2011, 10:24

Problem mit R

Beitrag von Peacem4ker »

Moin!
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
    }
  }
}
Das Problem ist, das ich da zum einen die FehlerMeldung

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())
sowie die warnungen:

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
Hat jemand eine AHnung, was ich evtl falsch mache? Ich komme da nicht weiter... Zur not nehme ich auch gerne eine alternativ Lösung :S
Generalist
Beiträge: 1733
Registriert: 11.03.2010, 22:28

Beitrag von Generalist »

Für R gibt es doch ein eigenes Forum, zumindest sofern "Foren-City" mal gerade nicht wieder down ist http://r-statistik.foren-city.de/
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

Was ich jetzt haben will, ist ein data.frame das mir einfach alle Tabellen untereinander schreibt
Zur not nehme ich auch gerne eine alternativ Lösung :S

Siehst du, und bei SPSS geht das so:

Code: Alles auswählen

ADD FILES /FILE='\\<path>\file_01.sav'
                 /FILE='\\<path>\file_02.sav'
                 /FILE='\\<path>\file_03.sav'


EXE.
Und dabei kann man noch Kaffee trinken. ;-)

Gruß
drfg2008
Peacem4ker
Beiträge: 2
Registriert: 21.03.2011, 10:24

Beitrag von Peacem4ker »

hmm... ich mag SPSS ÜBERHAUPT nicht :D... Also korrigiere ich mal auf "alternativ Lösung in R" ;)

Das Problem bei deiner Lösung ist auch: Wenn ich das richtig verstehe (wie gesagt SPSS bin ich nicht sooo bewandert), addest du quasi alle files aneinander, sprich du glaubst jede einzelne Tabelle ist ein einzelnes File, oder? Das ist hier aber leider nciht der Fall. Um genau zu sein hab ich keinen Plan wie und wo das im wikibooks paket abgespeichert ist :S...
Ausserdem fehlen in deiner Lösung dann noch die Spalten Saison und Spieltag ;)

Aber trotzdem shconmal danke für den Versuch

@2 über mir: Vorhin als ich den Post erstellt hab, wars down, deshalb hab ich nach weiteren Statistik foren gegooglet ;) aber ich werds da dann vllt auch nochmal posten :)
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

Mein Beispiel habe ich nur aus Spaß reingepasted ohne deinen Datensatz überhaupt zu kennen. Das war mit etwas Humor versetzt. Aber ich gehe jede Wette ein, dass ich jeden Datensatz, der sich mit R einlesen lässt in der Hälfte der Zeit in SPSS einlesen kann - notfalls mit SPSS-Python.

Und R starte ich fröhlich aus der Syntax.

Und die übrige Zeit trinke ich dann einen Cappucino mit Sahne.

Ok. ;-)

Gruß
drfg2008
Anzeige:Statistik und SPSS: Die besten Bücher
Als Buch oder E-Book - Jetzt bestellen
spss datenanalyse
SPSS - Moderne Datenanalyse - Jetzt bestellen!
statistik datenanalyse
Statistik - Der Weg zur Datenanalyse - Jetzt bestellen!
Antworten