【发布时间】:2016-05-13 19:10:44
【问题描述】:
这是我拥有的数据:
round<-rep(1:5,4)
players<-rep(1:2, c(10,10))
decs<-sample(1:3,20,replace=TRUE)
game<-rep(rep(1:2,c(5,5)),2)
gamematrix<-cbind(players,game,round,decs)
gamematrix
这是输出:
players game round decs
[1,] 1 1 1 2
[2,] 1 1 2 2
[3,] 1 1 3 1
[4,] 1 1 4 2
[5,] 1 1 5 1
[6,] 1 2 1 1
[7,] 1 2 2 1
[8,] 1 2 3 2
[9,] 1 2 4 1
[10,] 1 2 5 3
[11,] 2 1 1 2
[12,] 2 1 2 1
[13,] 2 1 3 3
[14,] 2 1 4 3
[15,] 2 1 5 3
[16,] 2 2 1 3
[17,] 2 2 2 2
[18,] 2 2 3 1
[19,] 2 2 4 1
[20,] 2 2 5 2
现在,我想添加另一列:“Same Choice”,如果同一游戏中的同一玩家在下一轮做出与上一轮相同的决定,我想成为“1”圆形的。例如,对于玩家 1,输出应为:c(0,1,0,0,0,0,1,0,0,0)。有什么想法我该怎么做?
谢谢!
【问题讨论】:
-
with(data.frame(gamematrix), ave(decs, players, game, FUN=function(x) c(0, !diff(x) ))) -
顺便说一句,在生成随机数据之前最好使用
set.seed,所以我们都在看同一件事。 (见下面 lmo 的回答。)