On 10/22/2008 11:21 AM, 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

I don't know of any special function to do that, but ifelse() can handle it easily:

Name <- ifelse(is.na(Name.x), Name.y, Name.x)

(If those are columns of a dataframe named df, you'd prefix each column name by df$, or do

within(df, Name <- ifelse(is.na(Name.x), Name.y, Name.x))

Duncan Murdoch

______________________________________________
R-help@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.

Reply via email to