【发布时间】:2019-11-04 15:08:42
【问题描述】:
我制作了一个数据框,其中有一列包含日期,三列包含数值,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
我想添加一个新列,根据 3 个测试列中的值放置 1 或 0。只有当 all 测试列的值为 0 时,我才希望新列的值为 1。如果 any 测试列的值为 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
所以我希望新列仅在 all 其他列等于 0 时返回值 1,否则它应该将值设置为 0。
我已经尝试了一些代码,但它分隔了所有列并给出了不想要的输出:
df$New <- ifelse(df[2:4] >0, 1, 0)
Date Test1 Test2 Test3 New.Test1 New.Test2 New.Test3
18-3-2016 1 0 0 0 1 1
18-3-2016 0 0 1 1 1 0
19-4-2016 1 0 0 0 1 1
12-2-2017 0 0 0 1 1 1
15-2-2017 0 0 0 1 1 1
感谢任何帮助。
【问题讨论】: