【发布时间】:2018-12-03 03:30:50
【问题描述】:
我有一个像这样的长数据框:
set.seed(17)
players<-rep(1:2, c(5,5))
decs<-sample(1:3,10,replace=TRUE)
world<-sample(1:2,10,replace=TRUE)
gamematrix<-cbind(players,decs,world)
gamematrix<-data.frame(gamematrix)
gamematrix
players decs world
1 1 1 1
2 1 3 1
3 1 2 2
4 1 3 2
5 1 2 2
6 2 2 2
7 2 1 2
8 2 1 1
9 2 3 2
10 2 1 2
我想为 每个 玩家创建一个新变量,该变量基于 decs==3 变量的首次外观和世界状态。
也就是说,如果“decs”第一次出现时,世界的状态是“1”,那么新变量应该得到“6”的值,否则,“7”,如下:
players decs world player_type
1 1 1 1 6
2 1 3 1 6
3 1 2 2 6
4 1 3 2 6
5 1 2 2 6
6 2 2 2 7
7 2 1 2 7
8 2 1 1 7
9 2 3 2 7
10 2 1 2 7
任何想法如何做到这一点?
【问题讨论】:
-
我不确定我是否理解您的预期输出;
player_type似乎只是players + 5,不管任何““decs”的第一次出现,不是吗?
标签: r datatable data-manipulation