具有随机值的R条件IfElse
我希望使用此规则创建“想要”: 如果狗>猫, “想要”=(狗-猫)*(1-runif(1,0.5,0.9)) 但是,当我使用“Try”时,它使用相同的随机“runif”值,但是,每次Dog>Cat时,我都希望从“runif”生成一个新值,而不是每次都使用相同的值具有随机值的R条件IfElse,r,if-statement,data.table,R,If Statement,Data.table,我希望使用此规则创建“想要”: 如果狗>猫, “想要”=(狗-猫)*(1-runif(1,0.5,0.9)) 但是,当我使用“Try”时,它使用相同的随机“runif”值,但是,每次Dog>Cat时,我都希望从“runif”生成一个新值,而不是每次都使用相同的值 data1 = data.frame("Cat" = c(8,4,3,7), "Dog"=c(4,7,10,5), "Want"=NA) data1$Try
data1 = data.frame("Cat" = c(8,4,3,7),
"Dog"=c(4,7,10,5),
"Want"=NA)
data1$Try = ifelse(data1$Dog > data1$Cat, (data1$Dog - data1$Cat) * (1-runif(1, 0.5, 0.9)), -99)
data1=data.frame(“Cat”=c(8,4,3,7),
“Dog”=c(4,7,10,5),
“想要”=NA)
data1 Cat您可以通过sample
ing:
data1 = data.frame("Cat" = c(8,4,3,7),
"Dog"=c(4,7,10,5),
"Want"=NA)
data1 <- within(data1, Want2 <- ifelse(Dog-Cat>0,(Dog-Cat)*(1-runif(1, 0.5, 0.9)),-99))
data1$Dif = (data1$Dog - data1$Cat)/data1$Want2
您可以通过sample
ing:
data1 = data.frame("Cat" = c(8,4,3,7),
"Dog"=c(4,7,10,5),
"Want"=NA)
data1 <- within(data1, Want2 <- ifelse(Dog-Cat>0,(Dog-Cat)*(1-runif(1, 0.5, 0.9)),-99))
data1$Dif = (data1$Dog - data1$Cat)/data1$Want2
您可以像下面这样尝试ifelse
data1$Want = ifelse(data1$Dog > data1$Cat,
(data1$Dog - data1$Cat) * (1-runif(sample(1:10,1, replace = T), 0.5, 0.9)), -99)
data1您可以像下面这样尝试ifelse
data1$Want = ifelse(data1$Dog > data1$Cat,
(data1$Dog - data1$Cat) * (1-runif(sample(1:10,1, replace = T), 0.5, 0.9)), -99)
data1当
data1 <- within(data1, Want <- ifelse(Dog-Cat>0,(Dog-Cat)*(1-runif(nrow(data1), 0.5, 0.9)),-99))
当
data1 <- within(data1, Want <- ifelse(Dog-Cat>0,(Dog-Cat)*(1-runif(nrow(data1), 0.5, 0.9)),-99))
是的,但我希望在上述同一迭代中,每次Dog>Cat时的值都不同。请看帖子上的新评论,非常感谢@Chris Ruehlemann如果你把sample
**放在**runif
后面会有什么不同,因此:data1$Want3=ifelse(data1$Dog>data1$Cat,(data1$Dog-data1$Cat)*(1-runif(sample(1:10,1,replace=T),0.5,0.9)),-99)
?好的,我很高兴这有帮助。我会相应地更新我的答案。点击绿色的勾号即可接受!是的,但我希望在上述同一迭代中,每次Dog>Cat时的值都不同。请看帖子上的新评论,非常感谢@Chris Ruehlemann如果你把sample
**放在**runif
后面会有什么不同,因此:data1$Want3=ifelse(data1$Dog>data1$Cat,(data1$Dog-data1$Cat)*(1-runif(sample(1:10,1,replace=T),0.5,0.9)),-99)
?好的,我很高兴这有帮助。我会相应地更新我的答案。点击绿色的勾号即可接受!谢谢,但它仍然使用相同的值@ThomasIsCoding@bvowe感谢您的反馈!我更新了我的解决方案,其中使用了runif(nrow(data1),0.5,0.9)
,而不是ifelse中的runif(1,0.5,0.9)
,谢谢,但它仍然使用相同的值@ThomasIsCoding@bvowe感谢您的反馈!我更新了我的解决方案,其中使用runif(nrow(data1),0.5,0.9)
代替ifelse中的runif(1,0.5,0.9)