给一个模拟样本分配出生日期;以下方法可行,但忽略了闰年。
想知道是否有更精确(且优雅)的R语言方法?
# Simulate 10 persons with age evenly distributed 0 to 21
age <- runif(10, 0, 21)
# calc age in seconds
agesecs <- age*365*24*60*60
# subtract from right now to establish 'birthdate'
bday <- as.Date(Sys.time() - agesecs)
bday
[1] "2008-03-28" "1998-06-12" "2010-05-02" "2007-01-11" "2007-06-07"
[6] "1999-05-22" "2004-01-29" "2013-03-29" "1998-06-01" "2006-10-14"
Sys.time
转换为年-月-日-时-分-秒格式,然后将随机的“年份”转换为相同的格式,就可以使用内置的时间函数来获取出生日期。程序员的黄金法则:永远不要重新发明已经被其他人完成的函数。 - Carl Witthoft