[R] rowVars

Brahm, David
Tue, 04 Apr 2006 22:04:32 -0000

I've written a rowVars function, but I don't think it throws the error
you mention.  You're welcome to use it if you like.

rowVars <- function(x, na.rm=FALSE, dims=1, unbiased=TRUE,
                    SumSquares=FALSE, twopass=FALSE) {
  if (SumSquares) return(rowSums(x^2, na.rm, dims))
  N <- rowSums(!is.na(x), FALSE, dims)
  Nm1 <- if (unbiased) N-1 else N
  if (twopass) {x <- if (dims==0) x - mean(x, na.rm=na.rm) else
                     sweep(x, 1:dims, rowMeans(x,na.rm,dims))}
  (rowSums(x^2, na.rm, dims) - rowSums(x, na.rm, dims)^2/N) / Nm1
}

-- David Brahm (brahm at alum.mit.edu)


-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of r user
Sent: Friday, March 31, 2006 1:40 PM
To: rhelp
Subject: [R] rowVars

I am using the R 2.2.1 in a Windows XP environment.

I have a dataframe with 12 columns and 1,000 rows.
(Some of the rows have 1 or fewer values.)

I am trying to use rowVars to calculate the variance
of each row.

I am getting the following message:
"Error in na.remove.default(x) : length of 'dimnames'
[1] not equal to array extent"


Is there a good work-around?