根据R中的月份获取随机天数

时间:2018-06-20 13:20:09

标签: r date sample

我希望能够生成随机的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

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

谢谢

1 个答案:

答案 0 :(得分:0)

要创建随机日期,可以使用以下命令:

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次。如果您想要唯一的日期,请使用此代码。否则,请在replace = TRUE函数中设置sample。然后,我使用gsub将破折号替换为空字符串。例如,1947-11-01变为19471101。如果需要特定范围,可以更改要采样的日期。