Comments inside. Reinman, Grant napsal(a): > Dear R-users, > I have two sets of code that appear to me to be equivalent, shown below, and > yet I get the error message > > "Error in dim(robj) <- c(dX, dY) : dim<- : dims [product 4] do not match the > length of object [1]" > > after executing the assignment to logdens2. Both functions post.a1 and > post.a2 return the same values when run alone and not embedded in the > function outer. I would appreciate help in understanding the differences > between these two sets of code. > > The code in post.a1 is from Gelman, Carlin, Stern, and Rubin's Bayesian Data > Analysis solutions, problem 3.5. I was trying to modify this code in > post.a2 when I ran into this error. > > > post.a1 <- function(mu,sd,y){ > ldens <- 0 > for (i in 1:length(y)) ldens <- ldens + log(dnorm(y[i],mu,sd)) > ldens} > y <- c(10,10,12,11,9) > mugrid <- c(10,11) > sdgrid <- c(1,1.2) > logdens1 <- outer (mugrid, sdgrid, post.a1, y) > #*** no error messages ***
Actually pretty ugly coding (for a textbook) in my opinion... Try what you get with y <- c(10,10,12,11,9) mugrid <- c(10,11) sdgrid <- c(1,1.2) log(dnorm(y[1],mean=mugrid,sd=sdgrid)) [1] -0.9189385 -1.4484823 This is in a perfect accordance with help(dnorm), which says you are allowed to specify a vector of means and SDs. Here 2 values were specified, so you obtain 2 density values. Now, adding a vector of length 2 to a constant: #not run here# ldens <- ldens + log(dnorm(y[i],mu,sd)) is again a vector of length 2. However, using sum() in your code below gives you just a single number and R starts complaining because the dimensions don't match. Petr > > > post.a2 <- function(mu,sd,y) > { > ldens <- sum(log(dnorm(y,mu,sd))) > ldens > } > y <- c(10,10,12,11,9) > mugrid <- c(10,11) > sdgrid <- c(1,1.2) > logdens2 <- outer (mugrid, sdgrid, post.a2, y) > #***error message occurs here *** > > Thank You! > > Grant Reinman > e-mail:[EMAIL PROTECTED] > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > -- Petr Klasterecky Dept. of Probability and Statistics Charles University in Prague Czech Republic ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.