我有以下一小段代码:
REAL(8) :: x
INTEGER :: i
call system_clock(i)
WRITE(*,*) 'cpu time', i
CALL random_seed(i)
CALL random_number(x)
WRITE(*,*) 'uniform RandVar', x
Run Code Online (Sandbox Code Playgroud)
CPU时间工作正常,但每次运行时我得到相同的制服RandVar number = 0.99755959009261719,几乎就像random_number一遍又一遍地使用相同的默认种子并忽略随机种子.
我究竟做错了什么?
足够简单的问题,但找不到答案。如果我有一些虚拟时间戳:
foo <- strftime(Sys.time(), "%Y-%m-%dT%H:%M:%SZ")
Run Code Online (Sandbox Code Playgroud)
带格式:
"%Y-%m-%dT%H:%M:%SZ".
Run Code Online (Sandbox Code Playgroud)
我将如何检查 foo 是什么格式?我需要检查用户是否以正确的格式提交了时间戳,因此需要类似的东西
if (func_bar(foo) != "%Y-%m-%dT%H:%M:%SZ") {stop("Complain")}
Run Code Online (Sandbox Code Playgroud)
是否有一个内在的 R 函数?
更新:(为清楚起见)我知道我可以为用户自动更改格式,即只需转换提交的日期。但在这种特殊情况下,我想抓住它。例如我可以使用:
foo1 <- as.POSIXlt(Sys.time(), "UTC", "%Y-%m-%dT%H:%M:%S")
foo <- strftime(foo1, "%Y-%m-%dT%H:%M:%SZ")
Run Code Online (Sandbox Code Playgroud)
把它变成正确的格式。
R中的以下内容无法按预期工作:
Dummy <- c(0,1,2,3,4,5)
length(palette(rainbow(length(Dummy))))
[1] 8
length(palette(rainbow(length(Dummy))))
[1] 6
length(palette(rainbow(length(Dummy))))
[1] 6
Run Code Online (Sandbox Code Playgroud)
为什么?