[R] coalesce columns within a data frame

Julian Burgos jmburgos at u.washington.edu
Wed Oct 22 21:23:41 CEST 2008


You could do something like this:

 > Name.x=c('nx1','nx2',NA,NA)
 > Name.y=c('ny1','NA','ny3',NA)

 > Name=Name.x
 > Name[is.na(Name.x)]=Name.y[is.na(Name.x)]

 > Name
[1] "nx1" "nx2" "ny3" NA


Julian


Ivan Alves wrote:
> Dear all,
> 
> I searched the mail archives and the R site and found no guidance (tried 
> "merge", "cbind" and terms like "coalesce" with no success).  There 
> surely is a way to coalesce (like in SQL) columns in a dataframe, 
> right?  For example, I would like to go from a dataframe with two 
> columns to one with only one as follows:
> 
> From
> 
> Name.x Name.y
> nx1 ny1
> nx2 NA
> NA ny3
> NA NA
> ...
> 
> To
> 
> Name
> nx1
> nx2
> ny3
> NA
> ...
> 
> where column Name.x is taken if there is a value, and if not then column 
> Name.y
> 
> Any help would be appreciated
> 
> Kind regards,
> Ivan
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list