[英]I'm trying to take the product of the columns in a matrix using R. What am I doing wrong?
问题:
我得到什么:
这里可能是什么问题? 我相信我正在按照要求做所有事情,但仍然得到完全不同的结果。
这是对 R 的默认随机数生成器进行更改(改进)的结果,请参阅help("set.seed")
。
RNGversion('4.2.0') #current behavior
set.seed(10)
m1 <- matrix(sample(1:10, 25, replace = TRUE), nrow = 5)
apply(m1, 2, prod)
#[1] 30240 11760 8960 2520 9000
RNGversion('3.1.0') #behavior in old R versions
#Warning message:
# In RNGkind("Mersenne-Twister", "Inversion", "Rounding") :
# non-uniform 'Rounding' sampler used
set.seed(10)
m1 <- matrix(sample(1:10, 25, replace = TRUE), nrow = 5)
apply(m1, 2, prod)
#[1] 840 945 2016 540 10080
这里的问题是 set.seed 的行为在 3.6.0 之前的set.seed
版本中是不同的。 要获得预期值,您需要更改sample.kind
参数。
旧版本(给出预期值):
set.seed(10, sample.kind = "Rounding")
m1 <- matrix(sample(1:10, 25, replace = TRUE), nrow = 5, ncol = 5)
m1
[,1] [,2] [,3] [,4] [,5]
[1,] 6 3 7 5 9
[2,] 4 3 6 1 7
[3,] 5 3 2 3 8
[4,] 7 7 6 4 4
[5,] 1 5 4 9 5
将其设置回较新的默认值:
set.seed(10, sample.kind = "Rejection")
m1 <- matrix(sample(1:10, 25, replace = TRUE), nrow = 5, ncol = 5)
m1
[,1] [,2] [,3] [,4] [,5]
[1,] 9 7 10 6 9
[2,] 10 3 2 7 2
[3,] 7 8 8 6 10
[4,] 8 10 8 2 5
[5,] 6 7 7 5 10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.