[R] apply vs. sapply
Uwe Ligges
ligges at statistik.uni-dortmund.de
Sat Dec 21 18:28:02 CET 2002
Christian Schulz wrote:
>
> Hi,
>
> sapply((1:NCOL(hermes)),function(x) hist(hermes[,x],main=names(hermes)[x]))
>
> .......this works , but i would like use it with apply to generate many plots in one step!
sapply() already *has* generated many plots, if NCOL(hermes) > 1.
It's rather complicated to help if one does not know what kind of object
"hermes" is [I guess a data.frame, because names() seems to give
reasonable results for you]
> ####################################################################
>
> >>apply((1:ncol(hermes)),2,function(x) hist(hermes[,x],main=names(hermes)[x]))
> Error in apply(1:ncol(hermes), 2, function(x) hist(hermes[, x], main = names(hermes)[x])) :
> dim(X) must have a positive length
apply() expects an array or a matrix, but not a vector.
The function within apply works on rows / columns of the matrix given as
the first argument, so something like
apply(hermes, 2, hist)
should do the trick.
Anyway, for labeling purposes I'd highly recommend to use a loop rather
than apply().
Uwe Ligges
> >>apply(hermes[,1:6],2,function(x) hist(hermes[,x],main=names(hermes)[x]))
> Error in hist.default(hermes[, x], main = names(hermes)[x]) :
> `x' must be numeric
>
> >>apply(hermes,2,function(x) hist(hermes[,x],main=names(hermes)[x]))
> Error in hist.default(hermes[,x ], main = names(hermes)[x]) :
> `x' must be numeric
>
> thanks for advance & regards
>
> [[alternate HTML version deleted]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> http://www.stat.math.ethz.ch/mailman/listinfo/r-help
More information about the R-help
mailing list