mein Name ist Sami und ich bin neu hier. Ich habe in den letzten Tagen etwas mit meinem Code zu kämpfen und hoffe das ihr mir weiter helfen könnt
Ich würde gern eine Matrix mit möglichen Kombinationen an Werten von einer Funktion füllen, die ich anhand von drei for schleifen berechne.
Es handelt sich um die Parameter q1, q2 und w die durch jeweils eine for Schleife laufen und ob der Gesamtwert der Funktion SP größer/gleich 0 ist oder nicht.
Leider befüllt mir R die Matrix nur mit den ersten fünf Werten jeder einzelnen Variable.
Außerdem bekomme ich die Fehlermeldung
Fehler in `[<-`(`*tmp*`, index, , value = c(NA, NA, NA, 1)) :
Indizierung außerhalb der Grenzen
Könnt ihr mir weiterhelfen ?
Code: Alles auswählen
#Funktion für die SP/A-Theorie aufstellen
#Parameter der SP/A Funktion definieren
kpp= 10
kp1p= -10
D1 =1
D2 =0.5
D3 =0
SP <- function(q1,q2,w){
value = ((w*1^(q1+1)+(1-w)*(1-(1-1)^(q2+1)))-(w*0.5^(q1+1)+(1-w)*(1-(1-0.5)^(q2+1))))*kp1p+((w*0.5^(q1+1)+(1-w)*(1-(1-0.5)^(q2+1)))-(w*0^(q1+1)+(1-w)*(1-(1-0)^(q2+1))))*kpp
return(value)
}
# Berechnung der Matrix
q1 = seq(from = 0, to = 4, by = 1) #Werte für den Parameter q1
q2 = seq(from = 0, to = 4, by = 1) #Werte für den Parameter q2
w = seq(from = 0, to = 0.8, by = 0.2) #Werte für den Parameter w
index = 1
X = matrix(nrow = length(q1) * length(q2) * length(w) , # Matrix für die Werte definieren
ncol = 4,
NA)
for (i in 1:length(q1)) { #Schleife q1, erste Spalte der Matrix
for (j in 1:length(q2)) { #Schleife q2, zweite Spalte der Matrix
for (k in 1:length(w)) { #Schleife w, dritte Spalte der Matrix
result = SP(q1[i], q2[j], w[k]) #Parameter zuweisen
gamble = result >= 0 #Agent spielt nur wenn Wert positiv ist, vierte Spalte der Matrix
X[index,] = c(q1[index], q2[index], w[index], gamble)
index = index+1
}
}
}
Lg Sami