It looks like pdf is not a "scalar" (that term actually has no meaning in R but I know what you mean) but is rather a 1x1 matrix, as attested by the fact it has dimensions. If you give dnorm() a matrix it will return one, as it did here.
Perhaps you should look at the is.matrix() and as.vector() functions rather than abusing a side-effect of c(), which makes it much more difficult to see R's internal logic, which, while quirky, is useful at the end of the day. Michael PS - It's good form to cc the list at each step so others can follow along and contribute when I say something wrong. It also helps you get quicker answers. On Nov 6, 2011, at 1:06 AM, Steven Yen <s...@utk.edu> wrote: > I am trying to multiply what I know is a scalar (pdf(xb)) to a column vector > of coefficient (bb). > In the following, pdf is a scalar and bb is 5 x 1. I first show what worked > and then what did not work. > If my pdf is a scalar, why would I need c(pdf) to be able to pre-multiply it > by a 5 x 1 vector? > > --- > > > x <- as.matrix(colMeans(x)) > > xb <- t(x)%*%bb > > pdf <- dnorm(xb) > > > dim(bb) > [1] 5 1 > > > > > cpdf <- c(pdf) > > dim(cpdf) > NULL > > cpdf > [1] 0.304201 > > (dphat <- cpdf*bb) > [,1] > (Intercept) 0.32744753 > xrage -0.00599225 > xryr 0.01758431 > xrrate -0.08217250 > xrrel -0.05695434 > > > > pdf <- dnorm(xb) > > dim(pdf) > [1] 1 1 > > pdf > [,1] > [1,] 0.304201 > > (dphat <- pdf*bb) > Error in pdf * bb : non-conformable arrays > > > > At 12:21 AM 11/6/2011, you wrote: >> There are a few (nasty?) side-effects to c(), one of which is >> stripping a matrix of its dimensionality. E.g., >> >> x <- matrix(1:4, 2) >> c(x) >> [1] 1 2 3 4 >> >> So that's probably what happened to you. R has a somewhat odd feature >> of not really considering a pure vector as a column or row vector but >> being willing to change it to either: >> >> e.g. >> >> y <- 1:2 >> >> x %*% y >> y %*% x >> y %*% y >> >> while matrix(y) %*% x throws an error, which can also trip folks up. >> You might also note that x * y and y*x return the same thing in this >> problem. >> >> Getting back to your problem: what are v and b and what are you hoping >> to get done? Specifically, what happened when you tried v*b (give the >> exact error message). It seems likely that they are non-conformable >> matrices, but here non-conformable for element-wise multiplication >> doesn't mean the same thing as it does for matrix multiplication. >> E.g., >> >> x <- matrix(1:4,2) >> y <- matrix(1:6,2) >> >> dim(x) >> [1] 2 2 >> >> dim(y) >> [1] 2 3 >> >> x * y -- here R seems to want matrices with identical dimensions, but >> i can't promise that. >> >> x %*% y does work. >> >> Hope this helps and yes I know it can seem crazy at first, but there >> really is reason behind it at the end of the tunnel, >> >> Michael >> >> >> On Sun, Nov 6, 2011 at 12:11 AM, Steven Yen <s...@utk.edu> wrote: >> > My earlier attempt >> > >> > dp <- v*b >> > >> > did not work. Then, >> > >> > dp <- c(v)*b >> > >> > worked. >> > >> > Confused, >> > >> > Steven >> > >> > At 09:10 PM 11/4/2011, you wrote: >> > >> > Did you even try? >> > >> > a <- 1:3 >> > x <- matrix(c(1,2,3,2,4,6,3,6,9),3) >> > a*x >> > >> > [,1] [,2] [,3] >> > [1,] 1 2 3 >> > [2,] 4 8 12 >> > [3,] 9 18 27 >> > >> > Michael >> > >> > On Fri, Nov 4, 2011 at 7:26 PM, Steven Yen <s...@utk.edu> wrote: >> >> is there a way to do element-by-element multiplication as in Gauss >> >> and MATLAB, as shown below? Thanks. >> >> >> >> --- >> >> a >> >> >> >> 1.0000000 >> >> 2.0000000 >> >> 3.0000000 >> >> x >> >> >> >> 1.0000000 2.0000000 3.0000000 >> >> 2.0000000 4.0000000 6.0000000 >> >> 3.0000000 6.0000000 9.0000000 >> >> a.*x >> >> >> >> 1.0000000 2.0000000 3.0000000 >> >> 4.0000000 8.0000000 12.000000 >> >> 9.0000000 18.000000 27.000000 >> >> >> >> >> >> -- >> >> Steven T. Yen, Professor of Agricultural Economics >> >> The University of Tennessee >> >> http://web.utk.edu/~syen/ >> >> [[alternative HTML version deleted]] >> >> >> >> ______________________________________________ >> >> R-help@r-project.org 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. >> >> >> > >> > -- >> > Steven T. Yen, Professor of Agricultural Economics >> > The University of Tennessee >> > http://web.utk.edu/~syen/ > -- > Steven T. Yen, Professor of Agricultural Economics > The University of Tennessee > http://web.utk.edu/~syen/ [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org 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.