我有一个名为“dat”的数据集。
TEAM1 TEAM2 WINNER
A P A
I S I
P S S
S I I
S P P
W P W
A E A
A S S
E A E
我想使用R代码创建变量“LOSER”。我尝试过这样:
Loser <- NULL
for (i in 1: nrow(dat)){
if(match(dat$Team1[i],dat$Winner)==TRUE){
Loser[i] <- cricket$Team2[i]
}else if(match(dat$Team1[i],dat$Winner)==FALSE ){
Loser[i] <- dat$Team1[i]
}
}
但是这个代码并不能给出精确的结果。这个代码有什么问题吗?
期望输出:
TEAM1 TEAM2 WINNER LOSER
A P A P
I S I S
P S S P
S I I S
S P P S
W P W P
A E A E
A S S A
E A E A
dat[1:2][cbind(1:nrow(dat),with(dat, TEAM1==WINNER)+1L)]
。 - akrun