如果没有给我正确的输出

时间:2015-04-02 02:55:57

标签: r if-statement

ifelse(BL0304_t2$BAXPFC11==1 & BL0304_t2$BAXPFC21==1 & 
       BL0304_t2$BAXPFC31==1 & BL0304_t2$BAXPFC41==1, 
       BL0304_t2$passcode <-1 , BL0304_t2$passcode <- 2)

这应该给我&#34; 1&#34; for&#34;密码&#34;当&#34; BAXPFC11&#34;,&#34; BAXPFC21&#34;,&#34; BAXPFC31&#34;,&#34; BAXPFC41&#34;是&#34; 1&#34;在和条件,应该给我&#34; 2&#34;除此以外。但是这给了我&#34; 2&#34;在所有情况下。我无法理解代码有什么问题。

1 个答案:

答案 0 :(得分:0)

ifelse由三个论点组成:1)逻辑测试,2)如果为真,则值为3)如果为假则为值。您可以使用它来创建新对象。由于您未提供任何数据或所需数据。这是我猜你想要的......

BL0304_t2$passcode=ifelse(BL0304_t2$BAXPFC11==1 & BL0304_t2$BAXPFC21==1 & 
BL0304_t2$BAXPFC31==1 & BL0304_t2$BAXPFC41==1,1,2)

正如@Pascal评论的那样,您还可以修改代码以使用with()最小化字符,如下所示:

BL0304_t2$passcode=with(BL0304_t2,ifelse(BAXPFC11==1 & BAXPFC21==1 & 
BAXPFC31==1 & BAXPFC41==1,1,2))