创建新列的示例

Sample to create a new column

我想创建一个新列,它将标记一定数量的列 1 和剩余数量的列 0。如果我希望 20% 的列具有此选项,我可以通过以下方式接近:

测试$Rand_Num <-样本(1:5,nrow(测试),replace=TRUE) 测试$输出 <- ifelse(测试$Rand_Num==1,1,0)

不过我想说的是,如果我有 1000 列,那么 200 列随机为 1,其余标记为 0,我可以快速更改为 30%,等等。以适应不同的场景。

谢谢!

如果您想随机 select 列,以便随机 select 列的 20%(或其他百分比),您可以 return [=21] 的向量=]ed 列(用于输入 data.frame df)与

p <- 0.2  # change me!
nselect <- round(p*ncol(df), 0)
whichcolumns <- sample(1:ncol(df), nselect)

要将其转换为由 0 和 1 组成的向量,您可以这样做

whichcolumns_01 <- rep(0, ncol(df))
whichcolumns_01[whichcolumns] <- 1

不可否认,里面有一些胶带,但它应该能用。