[R] coalesce columns within a data frame

Erik Iverson iverson at biostat.wisc.edu
Wed Oct 22 17:26:06 CEST 2008


Not tested, but for data.frame 'df', try

df$coal <- ifelse(!is.na(df$Name.x), df$Name.x, df$Name.y)

But see the help page for 'ifelse' regarding issues with classes, and 
the myriad R-help posts on the 'ifelse' function.

Erik

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