[R] Matrix formatting - reprise
Andy Bunn
abunn at montana.edu
Thu Feb 13 20:08:13 CET 2003
Given all these NA formatting replies - I have a question of my own.
I too have an object like foo.dat from the pervious posts:
foo.dat <- cbind(c(NA, 1, 2, 3, 4, 5), c(NA, NA, 0, 10 ,20, 30))
> foo.dat
[,1] [,2]
[1,] NA NA
[2,] 1 NA
[3,] 2 0
[4,] 3 10
[5,] 4 20
[6,] 5 30
and I have vector I want to subtract from each column of foo.dat say:
foo.subtract <- c(0.1, 0.2, 0.3, 0.4, 0.5)
I want to perform the subtraction from foo.dat but preserve the
structure of the data. I.e.,
[,1] [,2]
[1,] NA NA
[2,] 0.9 NA
[3,] 1.8 -0.1
[4,] 2.7 9.8
[5,] 3.6 19.7
[6,] 4.5 29.6
The final formatting of foo.dat has to be intact - I can't just shove
the NAs to the bottom. I tried to order the data in an apply function
but couldn't make it work.
Thanks, Andy
-----Original Message-----
From: r-help-admin at stat.math.ethz.ch
[mailto:r-help-admin at stat.math.ethz.ch] On Behalf Of Tim Sharac
Sent: Wednesday, February 12, 2003 1:42 PM
To: r-help at stat.math.ethz.ch
Subject: [R] Matrix formatting
Hi R-users:
I have a data formatting question. I have a data set that looks
something like this:
foo.dat <- cbind(c(NA, 1, 2, 3, 4, 5), c(NA, NA, 0, 10 ,20, 30))
What I have:
[,1] [,2]
[1,] NA NA
[2,] 1 NA
[3,] 2 0
[4,] 3 10
[5,] 4 20
[6,] 5 30
I want to line up the columns by the first value that is not NA. Like
so:
[,1] [,2]
[1,] 1 0
[2,] 2 10
[3,] 3 20
[4,] 4 30
[5,] 5 NA
[6,] NA NA
Question is: Is there an elegant way to do this without a for loop?
I tried doing this with na.omit and na.exclude without success.
The real data is many hundreds of columns and many thousands of rows.
Thanks in advance, Tim
Sign up for Internet Service under $10 dollars a month, at
http://isp.BlueLight.com
______________________________________________
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