[R] First value in a row
    Henrik Singmann 
    henrik.singmann at psychologie.uni-freiburg.de
       
    Tue Jul 24 10:40:10 CEST 2012
    
    
  
Hi Camilo,
as you want to work on all rows, apply() is your friend.
In the following, I use an anonymous function getting the first non-na 
value while looping over each row:
dat <- read.table(text = "
Lat   Lon  x1   x2  x3
01    10   NA   NA  .1
01    11   NA   .2  .3
01    12   .4   .5  .6
", header = TRUE)
apply(dat[,-(1:2)], 1, function(x) x[!is.na(x)][1])
gives:
[1] 0.1 0.2 0.4
Cheers,
Henrik
Camilo Mora schrieb:
> Hi.
>
> This is likely a trivial problem but have not found a solution. Imagine
> the following dataframe:
>
> Lat   Lon  x1   x2  x3
> 01    10   NA   NA  .1
> 01    11   NA   .2  .3
> 01    12   .4   .5  .6
>
> I want to generate another column that consist of the first value in
> each row from columns x1 to x3. That is
>
> NewColumn
> .1
> .2
> .4
>
> Any input greatly appreciated,
>
> Thanks,
>
> Camilo
>
>
> Camilo Mora, Ph.D.
> Department of Geography, University of Hawaii
>
    
    
More information about the R-help
mailing list