从两列中随机选择一个数字

时间:2020-03-31 20:13:38

标签: r random sample

我有这个数据框,我尝试考虑第一列和名为“零”的列中的数据来创建新列,我一直在使用sample(),间隔为(0,df $首先),但是它给了我一个介于0和第一列中数据之间的数字,而不是一个(0)或另一个(例如9)。

初始数据帧:

> df
  first zero 
1     9    0   
2     8    0   
3    16    0  

我想要的是这样的:

> df
  first zero new
1     9    0   9
2     8    0   0
3    16    0  16

非常感谢您的回答或意见。 谢谢!

1 个答案:

答案 0 :(得分:1)

我不确定你是否想要这个

set.seed(1)
df$new <- df[cbind(seq(nrow(df)),
                   sample(2,nrow(df),replace = TRUE))]

这样

> df
  first zero new
1     9    0   9
2     8    0   0
3    16    0  16

数据

df <- structure(list(first = c(9, 8, 16), zero = c(0, 0, 0)), class = "data.frame", row.names = c(NA, 
-3L))