【问题标题】:Generate multiple dates from age segments从年龄段生成多个日期
【发布时间】:2018-12-12 09:41:09
【问题描述】:

当前代码:

这里我给出了不同的部分; 0-20岁、21-45岁、46-65岁、66-100岁。

dob020 <- seq(today() - years(20), today(), by = "day")
dob2145<- seq(today() - years(45), today() - years(20), by = "day")
dob4665 <- seq(today() - years(65), today() - years(40), by = "day")
dob66100 <- seq(today() - years(100), today() - years(65), by = "day")

在这里,我想根据给定的概率生成随机 DoB。 0-20 年的概率必须为 15%、21-45 40% 等。

dateofbirth <-  sample(c(sample(dob020, 1), sample(dob2145, 1), 
sample(dob4665, 1), sample(dob66100, 1)), 10, replace = TRUE, 
prob = c(0.15,0.40, 0.35, 0.10))

这种工作正常,除了现在我得到的结果是 4 个不同的出生日期(每个部分一个),它们分布在 10 个结果中。

我想要的结果是仍然考虑概率的 10 个不同的出生日期。

【问题讨论】:

    标签: r date lubridate


    【解决方案1】:

    你不能在一个sample中做到这一点,你需要分别采样然后组合它们

    n <- 100
    prob <- c(0.15,0.40, 0.35, 0.10)
    
    c(sample(dob020, n*prob[1]), sample(dob2145, n*prob[2]), 
          sample(dob4665, n*prob[3]), sample(dob66100, n*prob[4]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 2023-03-05
      相关资源
      最近更新 更多