【发布时间】:2017-05-19 22:13:22
【问题描述】:
我想创建一个新列,该列将标记一定数量的列 1 和剩余的列数 0。如果我希望 20% 的列具有此选项,我可以通过以下方式接近:
test$Rand_Num
但是我想说,如果我有 1000 列,那么 200 列随机为 1,其余的标记为 0,我可以快速更改为 30%,等等。针对不同的场景。
谢谢!
【问题讨论】:
我想创建一个新列,该列将标记一定数量的列 1 和剩余的列数 0。如果我希望 20% 的列具有此选项,我可以通过以下方式接近:
test$Rand_Num
但是我想说,如果我有 1000 列,那么 200 列随机为 1,其余的标记为 0,我可以快速更改为 30%,等等。针对不同的场景。
谢谢!
【问题讨论】:
如果您想随机选择列,以便随机选择 20%(或其他百分比)的列,您可以返回所选列的向量(用于输入 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
诚然,这里面有一些胶带,但它应该可以工作。
【讨论】: