[R] Re place only first NA in column
Steve Lianoglou
mailinglist.honeypot at gmail.com
Tue Nov 3 22:09:12 CET 2009
Hi,
On Nov 3, 2009, at 3:58 PM, bikemike42 wrote:
>
> Dear All,
>
> I am trying to fill in a blank vector ("a") with one value at a
> time, with
> the value of the number of rows in a randomized dataset with
> rowSums=0.
> Below is the code I've got so far, but what I want to be as the last
> line is
> " a[1st NA,]=nz"
> such that this will run until all of my NAs are replaced with an
> integer
> value based on randomizations.
>
> a<-matrix(nrow=1000,ncol=1)
> while(sum(is.na(a)>0))
> {
> z<-matrix(rbinom(832, 1, prob = 0.048), nrow = 32)
> rs<-rowSums(z)
> nz<-length(rs[rs==0])
> a[,]=nz
>
> }
>
> Thank you for your help!
It's not really clear to me what you want to actually replace each NA
value with. But it sounds like your 'general' question is how to find
the index of the first value of a vector that is NA.
Let's say your `a` vector has NA values you want to replace, one by one.
any.na <- any(is.na(a))
while (any.na) {
first.na <- which(is.na(a))[1]
a[first.na] <- your.NA.replacing.function()
any.na <- any(is.na(a))
}
HTH,
-steve
--
Steve Lianoglou
Graduate Student: Computational Systems Biology
| Memorial Sloan-Kettering Cancer Center
| Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact
More information about the R-help
mailing list