[R] Calculating "row standard deviations"
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Tue Jun 23 00:41:56 CEST 2009
Mark Na wrote:
> Hi R-helpers,
>
> I have been struggling with calculating row and column statistics,
> e.g. standard deviation.
>
> I know that
>> datac$Mean<-rowMeans(datac,na.rm=TRUE)
> will give me row means.
>
> I have tried to replicate those row means with the apply function:
>> datac$Mean2<-apply(datac,2,mean)
>
> so that I can replace the function argument with "sd" (instead of
> mean) to get standard deviations.
>
> But, I'm running into this error:
>
>> dim(datac)
> [1] 17 271
>> datac$Mean2<-apply(datac,2,mean)
> Error in dimnames(x) <- dn :
> length of 'dimnames' [2] not equal to array extent
>
>
> Can anyone see what I'm doing wrong?
Not really, but you need apply(datac,1,mean) for row means:
> apply(airquality,2,mean)
Ozone Solar.R Wind Temp Month Day
NA NA 9.957516 77.882353 6.993464 15.803922
which are obviously column means.
However, I see a different error if I try to assign that back
> airquality$m <- apply(airquality,2,mean)
Error in `$<-.data.frame`(`*tmp*`, "m", value = c(NA, NA,
9.95751633986928, :
replacement has 6 rows, data has 153
Can't get much closer without a REPRODUCIBLE example.
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list