根据R中的月份获取随机日期

Get Random Days Based on the Month in R

我希望能够生成随机的 YYYMMDD 变量

我试过了:

Day=ifelse(substr(o1$Month,6,7) %in% c(1,3,5,7,8,10,12),sample(c(paste0('0',1:9),10:31),1),
           ifelse(substr(o1$Month,6,7) == 2,sample(c(paste0('0',1:9),10:28),1),sample(c(paste0('0',1:9),10:30),1))) 

根据月份生成随机日期。请注意,o1$Month 是 YYYY-MM 格式。但结果都是相同的日子。

> table(o1$Day)

25

55

任何人都可以提供一些建议,以便我也可以得到其他日子。

谢谢

要创建随机日期,您可以使用以下方法:

gsub("-", "", sample(seq(as.Date("1900-01-01"), 
                         as.Date("2000-12-31"), 
                         by = "day"), 10))

#[1] "19700214" "19910824" "19640205" "19531101" "19020116" "19360823" "19791019" "19520713" "19890408" "19220327"

在这里,我创建了两个日期(1900/01/01 和 2000/12/31)之间的天数序列,然后从中随机抽样 10 次。如果您想要唯一的日期,请使用此代码。否则,在 sample 函数中设置 replace = TRUE。然后我使用 gsub 将破折号替换为空字符串。例如,1947-11-01 变为 19471101。如果您想要特定范围,您可以更改采样日期。