[R] Merge and replace data
Duncan Murdoch
murdoch@dunc@n @end|ng |rom gm@||@com
Tue Sep 5 13:45:13 CEST 2023
On 05/09/2023 4:55 a.m., roslinazairimah zakaria wrote:
> Hi all,
>
> I have these data
>
> x1 <- c(116,0,115,137,127,0,0)
> x2 <- c(0,159,0,0,0,159,127)
>
> I want : xx <- c(116,115,137,127,159, 127)
>
> I would like to merge these data into one column. Whenever the data is '0'
> it will be replaced by the value in the column which is non zero..
> I tried append and merge but fail to get what I want.
>
Others have pointed out pmax(x1, x2). For the sample data, even x1+x2
would give the same answer.
The real question is what you want to do if both x1 and x2 have non-zero
entries, or negative entries:
pmax(x1, x2)
will pick the larger one. It might be zero if the other is negative,
and that doesn't match your description.
x1+x2
will just give the sum, which doesn't match your description if both are
non-zero.
But maybe you want the x1 value unless it is zero, even if it is smaller
than the x2 value: then you would use
ifelse(x1 != 0, x1, x2)
Similarly
ifelse(x2 != 0, x2, x1)
would prefer the x2 value.
You should think about what you would do in these other cases as well.
Duncan Murdoch
More information about the R-help
mailing list