我在data.frame中有一个向量ACCNS E. ACCNS具有离散值0,1,5,12,26或40。喜欢制作另一个具有基于0-1,1-5,5-12,12-26,26-40和40-100的“runif”值的矢量ACCNSrandom。我已经尝试过嵌套的ifelse,但每次都得到相同的值(如报告here)。我无法解决如何将这篇文章中给出的答案应用到更一般的形式。任何帮助将非常感激。R:如果另一个向量中的值在x和y之间,则范围之间的随机数
E<-data.frame(ACCNS=sample(c(0,1,2.5,5,12,26,40),50,replace = T))
E$ACCNSrandom <- ifelse(E$ACCNS == 0, runif(1,0,1),
ifelse(E$ACCNS>0 & E$ACCNS <= 2.5, runif(1,1,2.5),
ifelse(E$ACCNS > 2.5 & E$ACCNS<12, runif(1,2.5,12),
ifelse(E$ACCNS >= 12 & E$ACCNS<40, runif(1,12,40),
ifelse(E$ACCNS >= 40 & E$ACCNS<100, runif(1,40,100),0
) ) )))
我对任何解决方案都是开放的,只要它是一个小数而不是因素,因为我需要将它与以后的另一个数相乘。 – HCAI
您应该在问题中包含此评论,它是其中的一部分。 –