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. -- *Roslina Zakaria* [[alternative HTML version deleted]]
xx <- pmax(x1,x2) On Tue, Sep 5, 2023 at 11:56?AM roslinazairimah zakaria <roslinaump at gmail.com> 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. > > -- > *Roslina Zakaria* > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
?s 09:55 de 05/09/2023, roslinazairimah zakaria escreveu:> 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. >Hello, That's a case for ?pmax: x1 <- c(116,0,115,137,127,0,0) x2 <- c(0,159,0,0,0,159,127) pmax(x1, x2) #> [1] 116 159 115 137 127 159 127 Hope this helps, Rui Barradas
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