我必须使用big.matrix对象,并且我无法计算某些函数。让我们考虑以下big.matrix:使用big.matrix操作
# create big.matrix object
x <- as.big.matrix(
matrix(sample(1:10, 20, replace=TRUE), 5, 4,
dimnames=list(NULL, c("a", "b", "c", "d"))))
> x
An object of class "big.matrix"
Slot "address":
<pointer: 0x00000000141beee0>
相应的矩阵对象为:
# create matrix object
x2<-x[,]
> x2
a b c d
[1,] 6 9 5 3
[2,] 3 6 10 8
[3,] 7 1 2 8
[4,] 7 8 4 10
[5,] 6 3 6 4
如果我计算与矩阵对象作业本,它的工作原理:
sqrt(slam::col_sums(x2*x2))
> sqrt(slam::col_sums(x2*x2))
a b c d
13.37909 13.82027 13.45362 15.90597
而如果我使用big.matrix对象(实际上我必须使用),它不起作用:
sqrt(biganalytics::colsum(x*x))
个
的问题是2:*操作(用于创建矩阵的每个元素的平方),其产生错误:
Error in x * x : non-numeric argument transformed into binary operator
和sqrt函数,其产生错误:
Error in sqrt(x) : non-numeric argument to mathematical function.
如何使用big.matrix对象计算此操作?