繁体   English   中英

我正在尝试使用 R 获取矩阵中列的乘积。 我究竟做错了什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM