2016-04-19 4 views
-1

Also ich versuche, Wert im Array zuweisen. Ich schreibe den Code in R-StudioArray in R Fehler in der nächsten Variablen

enter image description here

Und es funktioniert. Die Ergebnisse sind korrekt. Aber wenn ich die dritte Variable einfüge, kommt es zu einem Fehler. so auch die vierte Variable und so weiter

enter image description here

Ich habe für die dritte Variable andere Namen versucht, aber der Fehler ist immer noch da. Was ist das Problem ? Vielen Dank im Voraus

+0

Sie tun dies nicht in R. Die Dinge sind vektorisiert. 'a <-3 * (1:10)' (und ähnlich für die anderen) ist der Weg, ohne jede Schleife. Der Fehler, den Sie erhalten haben, könnte nicht klarer sein: Das 'bb'-Objekt existiert nicht und daher kann R dem i-ten Element nicht den Wert' 5 * i' zuweisen. Anscheinend haben Sie 'a' und' b' irgendwo vor der Schleife definiert, aber nicht 'bb'. Aber das ist nicht wichtig: definiere 'bb <-5 * (1:10)' wie ich schon sagte ohne Loops und alles wird gut. – nicola

+0

@Nicola: Ich muss die Schleife machen. Derzeit verwende ich glänzend und brauche diese Art von Logik für Array. Wie auch immer, du hast es gelöst. Definieren Sie zuerst die Variable, damit sie funktioniert. Vielen Dank! – Elbert

+0

Ich wette, du brauchst keine Schleife, wenn das wirkliche Problem nur dem ähnelt, das du präsentierst. Jedenfalls empfehle ich Ihnen, die Vektorisierung besser zu verstehen. Die akzeptierte Lösung ist * sehr * ineffizient im Vergleich zu der von mir vorgeschlagenen Vektorisierung. – nicola

Antwort

0

Ich denke, das Problem, das Sie ist gegenüber:

Sie nicht 'bb' deklarieren, so versucht 'bb', bevor sie Gebrauch zu erklären.

> bb<-0 
> for(i in 1:10){ 
+ a[i]=3*i 
+ b[i]=4*i 
+ bb[i]=5*i 
+ } 
> bb[3] 
[1] 15 
+0

In der Tat! Vielen Dank – Elbert