[R] error message from apply()
jim holtman
jholtman at gmail.com
Wed Feb 6 04:33:05 CET 2008
You matrix only has 3 rows, so when you do 'apply(data2_1,2,...)' you
are extracting columns which only have a length of 3 while thr has a
length of 10
> str(data2_1)
num [1:3, 1:10] 0.958 0.271 -0.950 -0.130 -0.754 ...
> str(thr)
num [1:10] 1.060 0.528 0.104 0.925 -0.256 ...
>
That is why you get the error message of a size mismatch.
On Feb 5, 2008 10:21 PM, Ng Stanley <stanleyngkl at gmail.com> wrote:
> Replacing colMeans by mean removed the warning messages. Thanks
>
> However, when I precompute thr, and pass it to function(x), the error
> returns. Using the shorter data2_1, doesn't give any warnings. What is
> happening ?
>
> data2_1 <- matrix(c(0.9584190, 0.2710325, -0.9495618, -0.1301772, -0.7539687,
> 0.5344464, -0.8205933, 0.1581723, -0.5351588, 0.04448065, 0.9936430,
> 0.2278786, -0.8160700, -0.3314779, -0.4047975, 0.1168152, -0.7458182, -
> 0.2231588, -0.5051651, -0.74871174, 0.9450363, 0.4797723, -0.9033313, -
> 0.5825065, 0.8523742, 0.7402795, -0.7134312, -0.8162558, 0.6345438, -
> 0.05704138), 3,10)
> # data2_1 <- matrix(c(0.9584190, 0.2710325, -0.9495618, -0.1301772, -
> 0.7539687, 0.5344464, -0.8205933, 0.1581723, -0.5351588), 3,3)
>
> thr <- colMeans(data2_1, na.rm = TRUE) + sd(data2_1, na.rm = TRUE)
>
> num <- apply(data2_1, 2, function(x) {
> sum(x > (thr), na.rm = TRUE)
> })
>
>
>
> On 2/6/08, jim holtman <jholtman at gmail.com> wrote:
> >
> > The error message was coming from the call to colMeans where 'x' was
> > not a matrix; it was a vector that resulted from the 'apply' call.
> > Did you intend to use 'mean' instead like this example:
> >
> > > data2_1 <- matrix(c(0.9584190, 0.2710325, -0.9495618, -0.1301772, -
> > 0.7539687,
> > + 0.5344464, -0.8205933, 0.1581723, -0.5351588, 0.04448065, 0.9936430,
> > + 0.2278786, -0.8160700, -0.3314779, -0.4047975, 0.1168152, -0.7458182, -
> > + 0.2231588, -0.5051651, -0.74871174, 0.9450363, 0.4797723, -0.9033313, -
> > + 0.5825065, 0.8523742, 0.7402795, -0.7134312, -0.8162558, 0.6345438, -
> > + 0.05704138), 3,10)
> > >
> > > num <- apply(data2_1, 2, function(x) {sum(x > (mean(x, na.rm = TRUE) +
> > + 1*sd(x, na.rm = TRUE)), na.rm = TRUE)})
> > > num
> > [1] 0 1 1 1 0 0 1 1 0 0
> > >
> >
> >
> > On Feb 5, 2008 8:43 PM, Ng Stanley <stanleyngkl at gmail.com> wrote:
> > > Hi,
> > >
> > > I keep getting the error message. Please help.
> > >
> > > Error in colMeans(x, na.rm = TRUE) : 'x' must be an array of at least
> > two
> > > dimensions
> > >
> > > The codes are:
> > >
> > > data2_1 <- matrix(c(0.9584190, 0.2710325, -0.9495618, -0.1301772, -
> > 0.7539687,
> > > 0.5344464, -0.8205933, 0.1581723, -0.5351588, 0.04448065, 0.9936430,
> > > 0.2278786, -0.8160700, -0.3314779, -0.4047975, 0.1168152, -0.7458182, -
> > > 0.2231588, -0.5051651, -0.74871174, 0.9450363, 0.4797723, -0.9033313, -
> > > 0.5825065, 0.8523742, 0.7402795, -0.7134312, -0.8162558, 0.6345438, -
> > > 0.05704138), 3,10)
> > >
> > > num <- apply(data2_1, 2, function(x) {sum(x > (colMeans(x, na.rm = TRUE)
> > +
> > > 1*sd(x, na.rm = TRUE)), na.rm = TRUE)})
> > >
> > > [[alternative HTML version deleted]]
> > >
> > > ______________________________________________
> > > R-help at 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.
> > >
> >
> >
> >
> > --
> > Jim Holtman
> > Cincinnati, OH
> > +1 513 646 9390
> >
> > What is the problem you are trying to solve?
> >
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem you are trying to solve?
More information about the R-help
mailing list