最初,我有前四列。第一轮和回合2有两名球员A和B。每轮最高得分为1。
在第五列(我想获得)中,我希望第二轮选手A与初始得分1相比有多少改变(得分变化)。
这样,在第三行中,对于第二轮,B具有0.855,而A具有(1-0.855)= 0.145。其中,A从初始得分的变化是-0.855。
示例数据是由此生成的:'''
set.seed(123)
Round1 <- sample("A", size=10, replace = T, prob = NULL)
Score1 <- sample(seq(0.71,1,length.out = 3), size=10, replace = T, prob = NULL)
Score2 <- sample(seq(0.71,1,length.out = 3),size = 10, replace = T)
Round2 <- sample(LETTERS[1:2],size = 10,replace = T)
d <- data.frame(Round1,Score1,Round2,Score2)
有人可以帮助我更好地写作吗?我尝试了这个,但并没有真正给出我期望的结果:
d$Alteration <- ifelse(d$Round1==d$Round2, -1*(d$Score1-d$Score2),ifelse(d$Round1!=d$Round2 & d$Score2==1, -1+d$Score1, -1*d$Score2))
set.seed(123)
Round1 <- sample("A", size=10, replace = T, prob = NULL)
Score1 <- sample(1, size=10, replace = T, prob = NULL)
Score2 <- sample(seq(0.71,1,length.out = 3),size = 10, replace = T)
Round2 <- sample(LETTERS[1:2],size = 10,replace = T)
d <- data.frame(Round1,Score1,Round2,Score2)
d$Round1 <- as.character(d$Round1)
d$Round2 <- as.character(d$Round2)
d$A <- ifelse(d$Round1==d$Round2, d$Score2, 0)
d$B <- ifelse(d$Round1!=d$Round2, 1-d$Score2, 0)
d$Alteration <- ifelse(d$A!=0, d$A-d$Score1, d$B-d$Score1)
d
[前六个输出:
>Round1 Score1 Round2 Score2 A B Alteration
> A 1.000 B 1.000 0.000 0.000 -1.000
> A 0.855 B 1.000 0.000 0.000 -0.855
> A 1.000 B 0.855 0.000 0.145 -0.855
> A 0.855 B 1.000 0.000 0.000 -0.855
> A 0.710 A 0.855 0.855 0.000 0.145
> A 1.000 A 1.000 1.000 0.000 0.000