每天生成一个随机数

时间:2017-12-16 09:51:02

标签: r random

我正在寻找一种方法来生成一天的随机数,并且这个随机数在一整天都保持稳定。第二天,代码将生成另一个随机数,依此类推。

我确切地说,我不需要在每年的同一天分配相同的随机数。

实际代码:

# Data
MyMax <- 45
MyValues <- paste0("The video of the day is : video_", seq(1:MyMax))

# Random generator
MyRandomNumber <- sample(1:MyMax, 1)

# Output
print(MyValues[MyRandomNumber])

预期产出:

- &GT;每次我使用代码时,2017年12月16日:

[1] "The video of the day is : video_35"
[1] "The video of the day is : video_35"

- &GT;每次我使用代码时,2017年12月17日:

[1] "The video of the day is : video_48"
[1] "The video of the day is : video_48"

- &GT;每次我使用代码2018年12月16日:

[1] "The video of the day is : video_12"
[1] "The video of the day is : video_12"

3 个答案:

答案 0 :(得分:3)

# specify maximun random number (minimum is 1)
MyMax <- 100

# this will make sure randomisation remains stable at each day
set.seed(as.numeric(Sys.Date()))

# show the randomised value
paste0("The video of the day is : video_", sample(1:MyMax, 1))

# [1] "The video of the day is : video_79"

无论您今天运行此代码多少次,您始终都会获得相同的输出。明天它会改变,并将在一整天保持稳定等等。

答案 1 :(得分:2)

我在上述评论的帮助下找到的解决方案。

# Data
MyMax <- 45
MyValues <- paste0("The video of the day is : video_", seq(1:MyMax))

# Random generator
set.seed(as.numeric(Sys.Date()))
MyRandomNumber <- sample(1:MyMax, 1)

# Output
print(MyValues[MyRandomNumber])

答案 2 :(得分:0)

这应该为每一天生成一个随机数。

library(tidyverse)

dayYear <- as.Date(Sys.Date(),format='%d/%m/%Y') %>% lubridate::yday() %>% integer()
set.seed(dayYear)
randNum <- rnorm(1)