0

我正在尝试运行我一年多前编写的一些代码,但由于某种原因,这次它无法正常工作。以前我将矩阵变量 alpha 和 prob 输入到 R 中。但是这次我将它们作为 csv 文件导入,因此每次迭代都可以更轻松地修改它们。我目前正在运行 R x64 2.12.2。我加载了 gtools、splines 和 stat4 包。

alpha <- read.csv("AlphaOriginal.csv", header = FALSE)
prior <- array(0,c(45,45))
for (j in 1:45) prior[j,] <- rdirichlet(1,alpha[j,])

prob <- read.csv("ProbOriginal.csv", header = FALSE)
data <- array(0,c(45,45))
for (i in 1:45) data[i,] <- rmultinom(1,1,prob[i,])

posterior <- data%*%prior

write.table(posterior, file = "PosteriorOriginal.csv", row.names = FALSE, na = "", col.names = FALSE, sep = ",")

在 rdirichlet 行之后,我收到以下错误。

Error in rgamma (1*n, alpha) : invalid arguments

有谁知道这个错误是什么意思以及如何解决它?谢谢

4

1 回答 1

0

如果您查看“rdirichlet”帮助页面,您会发现“alpha”参数必须是向量,而不是 data.frame。所以你应该这样做:

rdirichlet(1, unlist(alpha[j,]))
于 2015-01-30T11:36:43.247 回答