r - 诊断错误:当 x 是矩阵时,无法指定 nrow 或 ncol
问题描述
diag(nrow(V) * tausq, nrow = ncol(V), ncol = ncol(V)) 中的错误:当“x”是矩阵时,不能指定“nrow”或“ncol”
这是我尝试运行时遇到的错误
D <- diag(nrow(V)*tausq, nrow=ncol(V), ncol=ncol(V))
这是我编写的函数的一部分。
它是函数的第一行,V 是一个矩阵,它是参数的一部分。
这个错误是什么意思?
解决方案
从?diag
中,您可以读到该函数做了两件事之一——它要么提取传递的矩阵的主对角线,要么构造一个新的对角线矩阵。如果您尝试提取矩阵的主对角线(通过将矩阵作为第一个参数传递给diag
),则不能将nrow
andncol
参数传递给diag
函数。
该错误告诉您代码中显然nrow(V)*tausq
是一个矩阵 - 因为nrow(V)
是一个常数,我们得出结论它tausq
必须是一个矩阵。结果,由于设置nrow
和ncol
.
长话短说——你似乎假设nrow(V)*tausq
是一个常数,但实际上它是一个矩阵。您需要转换tausq
为常量才能按照您的意愿进行操作。
推荐阅读
- jquery - 更改未来实例的 CSS
- javascript - 带有 package.json 链接的 CLI bin 可执行节点
- c - 为什么我不能用 C 语言重写 .txt 文件?
- angular - dx-load-panel,DevExtreme 角度组件的“容器”属性可以分配什么值?
- r - R Studio 未安装
- php - 如何扩展学说实体以使用 API 平台
- javascript - 我的自动完成字段不适用于引导程序
- wpf - WPF 依赖属性 - 从 XAML 设置
- boolean - 'loginpage.Type' 不能转换为 '(Binding
) -> 登录页面' - javascript - 分解 JS 函数