R ifelse函数中的随机数赋值是否未返回预期结果?

R ifelse函数中的随机数赋值是否未返回预期结果?,r,if-statement,random,R,If Statement,Random,我有一个数据集(summer2),其中包含一组点,每个点都分配了一个布尔“使用”值(0表示随机点,1表示使用点)和一个介于1和747之间的唯一ID(UniqueID)。我想创建一个新列“UniqueID_2”,如果它是一个已使用的点(Use=1),我希望它等于UniqueID字段。如果Use=0,我想在728-747之间分配一个新的随机ID号 我有一个ifelse函数,其中嵌套了sample函数作为第三个参数,当我运行它时,我从348-736获取值,而每个值都应该在728-747之间 我对R非常

我有一个数据集(summer2),其中包含一组点,每个点都分配了一个布尔“使用”值(0表示随机点,1表示使用点)和一个介于1和747之间的唯一ID(UniqueID)。我想创建一个新列“UniqueID_2”,如果它是一个已使用的点(Use=1),我希望它等于UniqueID字段。如果Use=0,我想在728-747之间分配一个新的随机ID号

我有一个ifelse函数,其中嵌套了sample函数作为第三个参数,当我运行它时,我从348-736获取值,而每个值都应该在728-747之间

我对R非常陌生,所以我假设这是一个语法错误,或者我只是使用了一个不正确的函数

summer2["UniqueID_2"]
summer2$UniqueID_2 = ifelse(summer2$Use == 1, summer2$UniqueID, sample(727:748, 1))

传递给
ifelse
的第三个参数应该是与其他两个参数长度相同的向量,否则循环将起作用(当循环单个随机数时会产生反直觉的结果)。你需要:

ifelse(summer2$Use == 1, summer2$UniqueID, sample(727:748, length(summer2$Use), replace = TRUE)