[R] Removing NAs from matrix
Amie Hunter
amie_hunter at hotmail.com
Sun Dec 1 13:16:03 CET 2013
Hello R users,
I'm new to R so apologies if this question seems simple. I have a matrix which is 35000 columns by 35000 rows and I’m wanting to work out the mean of each row. I've tried using the code below on a smaller version of the matrix, but receive an error:
> mat
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,] NA 0.3904762 0.2 0.4285714 0.04761905 NA NA NA NA NA NA
[2,] NA NA 0.2 0.2000000 0.23809524 0.2190476 NA NA NA NA NA
[3,] NA NA NA 0.5047619 0.27619048 0.2952381 0.1428571 NA NA NA NA
[4,] NA NA NA NA 0.42857143 0.3714286 0.3333333 0.2190476 NA NA NA
[5,] NA NA NA NA NA 0.8666667 0.6761905 0.4857143 0.6571429 NA NA
[6,] NA NA NA NA NA NA 0.6190476 0.4285714 0.6761905 0.4857143 NA
[7,] NA NA NA NA NA NA NA 0.6952381 0.6380952 0.6000000 0.2571429
[8,] NA NA NA NA NA NA NA NA 0.6761905 0.6000000 0.1809524
[9,] NA NA NA NA NA NA NA NA NA 0.6190476 0.3142857
[10,] NA NA NA NA NA NA NA NA NA NA 0.5809524
[11,] NA NA NA NA NA NA NA NA NA NA NA
> mean.matrix <- matrix(ncol=1, nrow=10)
> for (i in mat)
+ mean.matrix[,i] <- apply(mat,1,mean)
Error: NAs are not allowed in subscripted assignments
I have come across the na.omit() function however this completely removes the row. Is there any way I can either remove all the NAs from the matrix or pull out the values of each row to work out the mean?
Thanks,
Amie
More information about the R-help
mailing list