Rstan技术问询:如何从R向Stan传入多个向量
Stan数组向量的R数据传入方式
Stan里定义的vector[100] mu[20]表示20个长度为100的列向量组成的数组,从R传入数据时,推荐用矩阵形式:
mu = matrix(NA, nrow=100, ncol=20)
原因是Stan默认按列解析R矩阵,每一列会被识别为一个vector[100],刚好匹配mu的结构。
至于array(NA, dim=c(100,20)),虽然它和上述矩阵的维度结构一致,但Stan处理矩阵的逻辑更贴合这种数组向量的定义,用矩阵会更直观且不易出错。
另外也可以用列表形式传入:
mu = lapply(1:20, function(x) rep(NA, 100))
不过这种方式在数据量较大时效率不如矩阵,一般优先选择矩阵。
内容的提问来源于stack exchange,提问作者AlexLee
相关产品推荐
相关产品推荐

