Schleife in R

Hallo zusammen,

für die Erstellung vom Malmquist- Indizes mit R ist es notwendig eine Reihe von Matritzen zu erstellen (x1,…,xn) dieses Problem wollte ich in R mit einer einfachen „for“- Schleife lösen, also

for (i in 1:anz_matritzen){
xi=matrix…
i=i+1
}

Die Schleife an sich funktioniert, allerdings erstellt das Programm eben n- mal die Matrix xi, die sie eben dann n mal überschreibt.
Jetzt die Frage: Wie kann ich es Schaffen, dass n Matritzen erstellt werden?

Danke schon mal!

Philipp

Hallo,

klar, wenn du jede neue erstellte Matritze „matrix…“ immer der selben Variablen „xi“ zuweist, dass wird der alte Wert in xi jedesmal wieder überschrieben.

Lösung: Du mußt die Zielvariable indizieren (das wolltest du wohl mit dem i in xi, da hast Du aber was vergessen). Matrizen lassen sich nicht in Vektoren aufreihen, aber in Listen. Du brauchst also eine Liste, der die Matrizen hinzugefügt werden:

x = list()

Damit wäre die Variable „x“ als Liste definiert.
Statt „xi“ in der Schleife schreibst Du dann „x[[i]]“

Außerdem ist es dämlich ungünstig :smile: die Zählvariable i innerhalb der Schleife manuell nochmal zu inkrementieren. Genau das macht ja die Schleife! Also: lass das „i=i+1“ weg!

Damit wird die Schleife sehr einfach:

x = list()
for (i in 1:anz\_matritzen) x[[i]] = matrix(...)

Das war’s schon.
Mit x[[1]] kannst du die erste erstellte Matrix ansprechen, mit x[[2]] die zweite usw. Mit x[[2]][3,4] bekommst du direkt das Element in der 3. Spalte der 4. Zeile der 2. Matrize.

Danke schon mal!

Aber Bitteschön.

Jochen