“大矩阵”和常规数值矩阵有什么区别?

时间:2019-11-26 03:20:52

标签: r matrix rstudio

创建相对较大的矩阵时,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中也不同?

1 个答案:

答案 0 :(得分:1)

据我了解,“大矩阵”和public class SaveNewProductInput { public string Name { get; set; } public string Acronym { get; set; } public string Type { get; set; } public string Category { get; set; } public string Description { get; set; } public HttpPostedFileBase File { get; set; } } 是同一矩阵对象。重要的是如何在RStudio的全局环境中显示这些对象。

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

Uncaught TypeError: Illegal invocation

此向量被列为大向量。现在,让我们将其大小减小一:

matrix

突然,它变成法线向量。两个对象的结构相同(可以通过运行n <- 256 v1 <- rnorm(n*n-5) 进行验证)。它们的类和存储模式也是如此。那有什么不同呢?请注意,内存中v2 <- rnorm(n*n-6) 的大小恰好为512 Kb。

str

v2的大小略大:

lobstr::obj_size(v2)
>524,288 B # or exactly 512 kB

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