[R] Re place only first NA in column

Mike Treglia mlt35 at tamu.edu
Tue Nov 3 22:40:40 CET 2009


Erik and Steve,
Thanks again for your help, both solutions do exactly what I need.
Cheers,
Mike

Steve Lianoglou wrote:
> 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
>
>

-- 
Michael L. Treglia
Graduate Student
Wildlife and Fisheries Sciences
Texas A&M University
Lab: (979)862-7245
Cell: (917)841-5603
mlt35 at tamu.edu
http://people.tamu.edu/~mlt35




More information about the R-help mailing list