合并两列带有两个值的数据

4

我有一些列,知道它们的名称并且它们的数据值为0或1。

我想将它们合并成一个,但是如果一行中存在1,则取1的值,或者如果有两个1,则保留1。

数据示例:

stockI stockII
    1   0
    1   0
    0   0
    0   0
    0   0
    0   0
    0   0
    1   0
    0   0
    1   1

我可以期望的输出:

stockI/stockII
    0   
    1   
    0   
    0   
    0   
    0   
    0   
    0   
    0   
    1   

有没有cbind方法可以实现它?

1个回答

3

我们可以尝试一下

as.integer(with(df1, (c(FALSE,stockI[-1] &
   stockI[-nrow(df1)]) & stockI) | (stockI & stockII)))
#[1] 0 1 0 0 0 0 0 0 0 1

谢谢。只需要澄清一下。如果我有超过2列,并且想要使用相同的逻辑将它们合并为一个,那么我所需要做的就是将它们的名称添加到这个 | (stockI & stockII & stockIII & price))) 中。 - Eracog
@Eracog 你可以把它们放在一个列表中,然后使用 Reduce("&", df1)。第一个条件需要分开处理。 - akrun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接