我正在尝试将一个三维数据结构传递给 Stan(在 RStan 中),其中条目必须是整数,因为下游的函数需要这样做。但是我在声明它时遇到了麻烦。
我尝试了直截了当的方法:
int x[n,n,k];
但这给了我错误
mismatch in number dimensions declared and found in context; ... dims declared=(n,n,k); dims found=(n*n*k)
显然,出于某种原因(我不明白),输入数组正在变平。我给它一个简单的 3d 数组,没有 NA,尺寸在我通过它之前看起来很正确。事实上,同样的事情也发生在二维数组上,这意味着我什至不能声明一组二维矩阵作为一种解决方法。
然后我尝试了
row_vector[K] x[N,N];
但这回馈real
,不是int
。当我做类似的事情时
int row_vector[K] x[N,N];
那只是不正确的语法。
我还尝试传递逻辑值,希望它们被重新转换为整数,但没有。我传递了数组,我用 as.matrix 传递了它们,我在放入数据列表之前和之后检查了它们的维度。
这是 OSX 10.11.6 上的 R 版本 3.4.1,使用的是最新版本的 stan,它是今天刚刚从源代码编译的。
我错过了什么?或者,我如何将单个实数转换为整数,以便整数要求函数不会中断?
(而且,文档在哪里?我能找到的最好的是早已死去的评论线程。)