【问题标题】:How do I create a column with two values (or names) at a given weight in R如何在 R 中以给定权重创建具有两个值(或名称)的列
【发布时间】:2021-01-28 14:14:17
【问题描述】:

我正在尝试在 .dbf 中的数据中创建一列。 我需要创建一个列,其中 70% 为 0(或 TRUE),30% 为 1(或 FALSE),只是随机的。

我该怎么做?

【问题讨论】:

    标签: r random shapefile dbf


    【解决方案1】:

    如果你需要例如 100 个值,试试这个:

    sample(c(0,1), size = 100, replace = TRUE, prob = c(0.7, 0.3))
    

    【讨论】:

      【解决方案2】:

      这种方式建立在@Leonardo 的响应之上

      这种方式可以帮助您创建一个包含 2 列和一个标题的数据框。

      1. 一列包含您的数据
      2. 另一列包含 False 或 True,其中 False == 30%,True == 70%

      首先创建数据框和列

      df <- sample(c(0,1), size = 100, replace = TRUE, prob = c(0.7, 0.3))
      
      column_1 <- "Column 1"
      

      将两者结合起来创建数据框

      newdf <- data.frame("Column 1" = df)
      

      最后,使用grepl命令,我们可以填写一列,分别为False和True

      newdf$presence <- ""
      newdf$abesence <-"1"
      newdf$presence[grepl('1', newdf$abesence)] <- ifelse(newdf$Column.1[grepl('1', newdf$abesence)] == 1,'False', 'True')
      

      去掉不必要的列

      newdf[3] <- NULL
      

      检查 False 和 True 的频率

      table(newdf$presence)
      

      你去吧!这不是解决这个问题的最优雅的方式,但它确实有效:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-24
        • 2020-06-05
        • 2022-06-13
        • 1970-01-01
        • 2018-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多