
Ich bin noch nicht besonders weit in R und hänge gerade immer wieder im for loop.
Ich bekomme immer wieder die gleichen Fehlermeldungen, wenn ich in den Loop etwas längere If-Bedigungen oder die Funktion Switch einbaue, aber halt nicht immer. Teilweise funktionieren meine Loops ganz wunderbar; aber manchmal eben nicht, und ich kann irgendwie nicht den Unterschied zwischen beiden Codes erkennen.
Ich bekomme die Fehlermeldung, es gäbe eine unerwartete { oder = (und die Klammer benutzt man ja im for Loop und in der if Bedingung). Ich dachte, irgendwie kann R die offene "{" Klammer nicht zu der geschlossenen "}" Klammer zuordnen (weil ich auch beim Schreiben manchmal diese kleine Fehlermeldung bekomme, es gäbe ein "unexpected Token {", aber die verschwindet dann auch wieder). Der Code stimmt nämlich; es gibt keine Klammer zu viel oder so; und es passiert auch irgendwie nur manchmal. Ich dachte, vielleicht sind die Einrückungen wichtig, deshalb hab ich auch auf die geachtet. Normalerweise schreibe ich den Code, setze die Klammer ein ({), und dann mache ich einen Zeilenumbruch; die geschlossene Klammer, die dann dazu entstanden ist, wird dann direkt in die dritte Zeile gerückt.
Folgendes hab ich schon probiert:
1. Ein funktionierendes For Loop kopiert und dann das, was ich eigentlich haben will, in das Loop reingeschrieben und den Rest gelöscht; damit die Klammern nicht verschoben werden.
2. Das Loop selbst geschrieben und als ich dann "{" verwendet habe und gleich die zugehörige "}" automatisch dazu aufgetaucht ist, hab ich die Befehle, die ich vorher manuell eingetippt hatte, einfach per copy&paste zwischen die Klammern gesetzt.
3. Den Cursor hinter die Klammern, die als unexpected markiert wurden, bewegt, und die Zeilenumbrüche dahinter manuell gelöscht und dann wieder manuell neu gemacht.
Ich hab hier ein Beispiel, in dem ich diese Fehlermeldung bekommen hab:
Code: Alles auswählen
for (i in (1:n)){
if (Noquote[i,2]=="Frau") {
Noquote[i,14] = pref.quota[i]-12+Unterstuetzung[i]/100
}
else
Noquote[i,14] = pref.quota[i]+10 + Unterstuetzung[i]/100
if(Noquote[i,9] = "Stereotyp" & Noquote[i,2]="Frau"){
Noquote[i,14]=Noquote[i,14]-2
}
if(Noquote[i,9]="Stereotyp" & Noquote[i,2]="Mann"){
Noquote[i,14]=Noquote[i,14]+2
}
if(Noquote[i,9]="Nicht-Stereotyp" & Noquote[i,2]="Frau"){
Noquote[i,14]=Noquote[i,14]+2
}
if(Noquote[i,9]="Nicht-Stereotyp" & Noquote[i,2]="Mann"){
Noquote[i,14]=Noquote[i,14]-2
}
}
Code: Alles auswählen
> for (i in (1:n)){
+ if (Noquote[i,2]=="Frau") {
+ Noquote[i,14] = pref.quota[i]-12+Unterstuetzung[i]/100
+ }
+ else
+ Noquote[i,14] = pref.quota[i]+10 + Unterstuetzung[i]/100
+ if(Noquote[i,9] = "Stereotyp" & Noquote[i,2]="Frau"){
Fehler: Unerwartete(s) '=' in:
" Noquote[i,14] = pref.quota[i]+10 + Unterstuetzung[i]/100
if(Noquote[i,9] ="
> Noquote[i,14]=Noquote[i,14]-2
> }
Fehler: Unerwartete(s) '}' in " }"
> if(Noquote[i,9]="Stereotyp" & Noquote[i,2]="Mann"){
Fehler: Unerwartete(s) '=' in " if(Noquote[i,9]="
> Noquote[i,14]=Noquote[i,14]+2
> }
Fehler: Unerwartete(s) '}' in " }"
> if(Noquote[i,9]="Nicht-Stereotyp" & Noquote[i,2]="Frau"){
Fehler: Unerwartete(s) '=' in " if(Noquote[i,9]="
> Noquote[i,14]=Noquote[i,14]+2
> }
Fehler: Unerwartete(s) '}' in " }"
> if(Noquote[i,9]="Nicht-Stereotyp" & Noquote[i,2]="Mann"){
Fehler: Unerwartete(s) '=' in " if(Noquote[i,9]="
> Noquote[i,14]=Noquote[i,14]-2
> }
Fehler: Unerwartete(s) '}' in " }"
> }
Fehler: Unerwartete(s) '}' in "}"
