R:根据具有多个列的条件添加新列

我制作了一个数据框,该数据框具有一个带有日期的列和三个带有1或0的数值的列:

-----BEGIN PGP PUBLIC KEY BLOCK-----

Comment: Hello,World!

UBStcXNLrrB3CTV429OmCB35xiYZNCckQZ8LQ+RkcIetcWUTY5n4oYn+3WGGTvv6
ALCiRIKQgCjV9wFawAUAIPn4Otq+amdvmQYbCTgvWxxpZLHNu2Ixc2z0XsUnKRF3
7Ar3BK0Y72430x4XNtgxePKSeM6yChXyJ5nmGLf7zYBs3al+dpa8HxiWZwyaslRF
moZ3GljtkcRYiVTvDdROwItP
=G3b9

-----END PGP PUBLIC KEY BLOCK-----

我想添加一个新列,根据3个测试列中的值放置1或0。仅当所有测试列的值为0时,我才希望新列的值为1。如果 any 测试列的值为1,则它应返回值0在新列中。新的所需数据框将如下所示:

Date      Test1  Test2  Test3
18-3-2016   1      0      0
18-3-2016   0      0      1
19-4-2016   1      0      0
12-2-2017   0      0      0
15-2-2017   0      0      0

因此,我希望新列仅在 all 所有其他列等于0的情况下才返回值1,否则应将值放置为0。

我已经尝试了一些代码,但是它分隔了所有列并给出了不希望的输出:

Date      Test1  Test2  Test3  New
18-3-2016   1      0      0     0
18-3-2016   0      0      1     0
19-4-2016   1      0      0     0
12-2-2017   0      0      0     1
15-2-2017   0      0      0     1

感谢您的帮助。

huahua75512 回答:R:根据具有多个列的条件添加新列

您可以根据其总和尝试有条件的交易吗?因此,如果所有3加在一起为0,则使新列为1。就像这样:

df$New <- ifelse(df$Test1 + df$Test2 + df$Test3 == 0,1,0)

,

您的ifelse()想法是一种不错的方法,但条件不同:

df$New <- ifelse(df$Test1 == 0 & df$Test2 == 0 & df$Test3 == 0,0)

&指定必须同时满足所有要求,这意味着每个Test值必须为0才能为新列分配1。

本文链接:https://www.f2er.com/3165731.html

大家都在问