Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:irlba错误_R_Matrix Decomposition - Fatal编程技术网

R:irlba错误

R:irlba错误,r,matrix-decomposition,R,Matrix Decomposition,我试图用R包irlba分解一个方阵,但得到以下信息: “V[,1:(k+dim(F)[2])]与irlba(C.i,nu=0,nv=0)的误差i得到: $d [1] 0.1938809 $u [,1] [1,] 0.6595482 [2,] 0.7216141 [3,] -0.1355695 [4,] -0.1609040 $v [,1] [1,] 0.6590202 [2,] 0.7214017 [3,] -0.1432499 [4,]

我试图用R包
irlba
分解一个方阵,但得到以下信息:

“V[,1:(k+dim(F)[2])]与irlba(C.i,nu=0,nv=0)的误差
i得到:

$d
[1] 0.1938809

$u
           [,1]
[1,]  0.6595482
[2,]  0.7216141
[3,] -0.1355695
[4,] -0.1609040

$v
           [,1]
[1,]  0.6590202
[2,]  0.7214017
[3,] -0.1432499
[4,] -0.1573256

$iter
[1] 1

$mprod
[1] 6
这就是你要找的吗


(很抱歉在回答中问了一个问题,但我没有足够的分数来评论这个问题。:)

我收到了软件包作者关于此错误的回复-这确实是一个错误。此问题已通过irlba软件包的更新版本得到解决。更新后的软件包最终将提交给CRAN,但在此期间,您可以通过GitHub安装:

remove.packages("irlba")
library("devtools")
install_github("IRL","bwlewis",quick=TRUE)

library("irlba")

C.i <- structure(c(0.107821513562202, 0.0629415996952743, -0.0346069282137902, 
-0.0410208578535759, 0.0629415996952743, 0.136205395050303, -0.00378166611862939, 
0.00237156895349009, -0.0346069282137902, -0.00378166611862939, 
0.0122114763151942, -0.00635448918784993, -0.0410208578535759, 
0.00237156895349009, -0.00635448918784993, 0.0431193044924), .Dim = c(4L, 4L), 
.Dimnames = list(c("Sepal.Length", "Sepal.Width", "Petal.Length",
"Petal.Width"), c("Sepal.Length", "Sepal.Width", "Petal.Length", 
"Petal.Width")))

irlba(C.i, nu=1, nv=1)

#$d
#[1] 0.1938898
#
#$u
#           [,1]
#[1,]  0.6593389
#[2,]  0.7216000
#[3,] -0.1349355
#[4,] -0.1623519
#
#$v
#           [,1]
#[1,]  0.6593384
#[2,]  0.7216001
#[3,] -0.1349364
#[4,] -0.1623526
#
#$iter
#[1] 2
#
#$mprod
#[1] 10
remove.packages(“irlba”)
库(“devtools”)
安装_github(“IRL”、“BWLeiwis”,quick=TRUE)
图书馆(“irlba”)

C.i我通常会挖掘源代码,并尝试抛出所有不相关的内容,直到我有一个最小的中断代码。这通常足以诊断这是否是一个bug或例如错误的参数。请参阅问题,可能会给出一个方法上的提示。如果您设法缩小范围,至少部分,请毫不犹豫地发布,我可能会在发布时从那里获取它我有一些时间。我认为这可能是一个边缘情况,与以下事实有关:
adjust+max(nu,nv)
等于矩阵的维数,但这似乎不是真的:
irlba(C.I,nu=1,nv=1,adjust=2)
也不起作用。然而,
irlba(矩阵(rnorm(25),5),nv=1,nu=1)
起作用,
irlba(矩阵)(rnorm(16),4),nv=1,nu=1)
失败——如果有帮助的话…@BenBolker-是的-出于某种原因,只有一些矩阵会导致这些类型的问题。我认为这可能与矩阵不是正定的情况有关,但我不确定。@tonytonov-我很难一行一行地通过原始函数进行尝试然后找到错误点。我已经联系了软件包的作者,他也在查看这个错误。不过谢谢你的建议。这确实有效,但我不知道为什么。我在一个示例中试用了它,它给出了与
nu=1
nv=1
相同的结果:
set.seed(1);x我看过代码,但我对函数不太熟悉,无法真正了解发生了什么。我认为这可能只是一个罕见的错误。至于为什么它与0一起工作,我认为这可能是另一个错误。如果你在测试中注意到^,u和v是相同的,但iter和mprod不是。虽然这在这里似乎可行,但它可能不起作用k表示另一个矩阵。事实上,我刚刚发现了一个随机矩阵,其结果都是错误的符号,所以要小心。是的,我相信你是对的,这不是一个好的整体修复。我尝试了
nu=0;nv=0
技巧,使用了一个大得多的矩阵,函数继续计算的时间比只使用一个vec时长得多tor是要计算的。我最终不得不打破这个计算。我会保留这个问题,并希望得到一个更规范的答案。谢谢你的帮助。
remove.packages("irlba")
library("devtools")
install_github("IRL","bwlewis",quick=TRUE)

library("irlba")

C.i <- structure(c(0.107821513562202, 0.0629415996952743, -0.0346069282137902, 
-0.0410208578535759, 0.0629415996952743, 0.136205395050303, -0.00378166611862939, 
0.00237156895349009, -0.0346069282137902, -0.00378166611862939, 
0.0122114763151942, -0.00635448918784993, -0.0410208578535759, 
0.00237156895349009, -0.00635448918784993, 0.0431193044924), .Dim = c(4L, 4L), 
.Dimnames = list(c("Sepal.Length", "Sepal.Width", "Petal.Length",
"Petal.Width"), c("Sepal.Length", "Sepal.Width", "Petal.Length", 
"Petal.Width")))

irlba(C.i, nu=1, nv=1)

#$d
#[1] 0.1938898
#
#$u
#           [,1]
#[1,]  0.6593389
#[2,]  0.7216000
#[3,] -0.1349355
#[4,] -0.1623519
#
#$v
#           [,1]
#[1,]  0.6593384
#[2,]  0.7216001
#[3,] -0.1349364
#[4,] -0.1623526
#
#$iter
#[1] 2
#
#$mprod
#[1] 10