gpt4 book ai didi

r - "Large Matrix"和常规数值矩阵有什么区别?

转载 作者:行者123 更新时间:2023-12-04 12:50:20 40 4
gpt4 key购买 nike

创建相对较大的矩阵时,Rstudio在其环境窗口中将其标记为“大型矩阵”:

 x <- matrix(rnorm(10000 * 5000), ncol=5000)
# Large matrix (50000000 elements, 381.5 Mb)

预期的mode()函数为此对象返回“数字”:
mode(x)
## [1] "numeric"

但是,如果我运行以下命令:
mode(x) <- "numeric"

Rstudio将“大矩阵”更改为常规数值矩阵:
# x:  num [1:10000, 1:5000]

那么这两个对象有什么区别?这种差异是否仅存在于Rstudio中,或者这两个对象在R中也有所不同?

最佳答案

以我的理解,“大矩阵”和matrix是同一矩阵对象。重要的是这些对象如何在RStudio的全局环境中显示。

RStudio还可以区分矢量和大型矢量。考虑以下向量:

n <- 256
v1 <- rnorm(n*n-5)

此向量被列为大向量。现在,让我们将其大小减小一:
v2 <- rnorm(n*n-6)

突然,它变成法线向量。两个对象的结构相同(可以通过运行 str进行验证)。它们的类和存储模式也是如此。那有什么不同呢?请注意,内存中 v2的大小恰好是512 Kb。
lobstr::obj_size(v2)
>524,288 B # or exactly 512 kB
v1的大小略大:
lobstr::obj_size(v1)
>524,296 B # or 512.0078125 KB

据我了解(如果我错了,请纠正我),为方便起见,RStudio会以不同的方式显示大于512 kB的对象。

关于r - "Large Matrix"和常规数值矩阵有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59043270/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com