【问题标题】:Sample to create a new column创建新列的示例
【发布时间】:2017-05-19 22:13:22
【问题描述】:

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

test$Rand_Num

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

谢谢!

【问题讨论】:

    标签: r sampling


    【解决方案1】:

    如果您想随机选择列,以便随机选择 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
    

    诚然,这里面有一些胶带,但它应该可以工作。

    【讨论】:

      猜你喜欢
      • 2015-12-14
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2013-11-23
      相关资源
      最近更新 更多