ich die folgenden Daten haben:Wie recency in R berechnen
set.seed(20)
round<-rep(1:10,2)
part<-rep(1:2, c(10,10))
game<-rep(rep(1:2,c(5,5)),2)
pay1<-sample(1:10,20,replace=TRUE)
pay2<-sample(1:10,20,replace=TRUE)
pay3<-sample(1:10,20,replace=TRUE)
decs<-sample(1:3,20,replace=TRUE)
previous_max<-c(0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,1,1,0)
gamematrix<-cbind(part,game,round,pay1,pay2,pay3,decs,previous_max)
gamematrix<-data.frame(gamematrix)
Hier ist die Ausgabe:
part game round pay1 pay2 pay3 decs previous_max
1 1 1 1 9 5 6 2 0
2 1 1 2 8 1 1 1 1
3 1 1 3 3 5 5 3 0
4 1 1 4 6 1 5 1 0
5 1 1 5 10 3 8 3 0
6 1 2 6 10 1 5 1 0
7 1 2 7 1 10 7 3 0
8 1 2 8 1 10 8 2 1
9 1 2 9 4 1 5 1 0
10 1 2 10 4 7 7 2 0
11 2 1 1 8 4 1 1 0
12 2 1 2 8 5 5 2 0
13 2 1 3 1 9 3 1 1
14 2 1 4 8 2 10 2 1
15 2 1 5 2 6 2 3 1
16 2 2 6 5 5 6 2 0
17 2 2 7 4 5 1 2 0
18 2 2 8 2 10 5 2 1
19 2 2 9 3 7 3 2 1
20 2 2 10 9 3 1 1 0
Wie kann ich eine neue Indikatorvariable "previous_max", das anzeigt, ob kehrt berechnen in die nächste Runde des gleichen Spiels, der gleiche Teilnehmer wählen Sie die maximale Auszahlung aus der vorherigen Runde. So ich etwas will, wie folgt:
Teilnehmer (Teil) 1:
In der ersten Runde jeden Spiel, previous_max ist "0" (keine vorherige Runde), in Runde 2, previous_max = "1" , denn in Runde 1 war der maximale Lohn maximal (pay1, pay2, pay3) = max (9,5,6) = 9, und in Runde 2 waren die Entscheidungen des Teilnehmers (decs) 1 (was der Maximalwert in vorherige Runde).
In Runde 3, previous_max = 0, weil der maximale Wert in Runde 2 8 war (was "pay1" ist), aber der Teilnehmer wählt "3" (was pay3 ist).
Danke !! Funktioniert wie eine Magie! Wenn Sie möchten, dass die Ausgabe wie in meinem Beispiel ist, sollte Ihr Code _leicht_ aktualisiert sein: split (., List (gamematrix $ part, gamematrix $ game))%>% – YefR