我有这个数据框,我尝试考虑第一列和名为“零”的列中的数据来创建新列,我一直在使用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
非常感谢您的回答或意见。 谢谢!
答案 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))