【问题标题】:randomly assign 1,2, or 3 to unique character string将 1,2 或 3 随机分配给唯一的字符串
【发布时间】:2020-04-23 03:04:09
【问题描述】:

我有一个字符向量,我想为字符向量中的每个字符串随机分配数字类别 1、2 或 3。我怎么能在R中做到这一点

输入

Species
Species1 
Species2
Species3
Species4
Species5

示例输出

Species   Category
Species1  2
Species2  1 
Species3  1
Species4  3
Species5  3

【问题讨论】:

    标签: r random


    【解决方案1】:

    使用sample

    set.seed(2020)
    df$Category <- sample(3, nrow(df), replace = TRUE)
    df
    
    #   Species Category
    #1 Species1        3
    #2 Species2        2
    #3 Species3        1
    #4 Species4        1
    #5 Species5        2
    

    数据

    df <- structure(list(Species = structure(1:5, .Label = c("Species1", 
    "Species2", "Species3", "Species4", "Species5"), class = "factor")), 
    class = "data.frame", row.names = c(NA, -5L))
    

    【讨论】:

    • 我也应该使用 set.seed(2020) 吗?
    • 如果您希望结果可重现,您可以使用任何种子。如果您希望每次不需要使用它时都随机使用它。
    【解决方案2】:

    我们可以使用dplyr

    library(dplyr)
    df %>%
       mutate(Category = sample(3, n(), replace = TRUE))
    

    数据

    df <- structure(list(Species = structure(1:5, .Label = c("Species1", 
    "Species2", "Species3", "Species4", "Species5"), class = "factor")), 
    class = "data.frame", row.names = c(NA, -5L))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 2010-10-18
      • 2014-10-20
      相关资源
      最近更新 更多