[R] coalesce columns within a data frame
Duncan Murdoch
murdoch at stats.uwo.ca
Wed Oct 22 17:26:35 CEST 2008
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
More information about the R-help
mailing list