R:ifelse语句将一个值分配给另一列。

问题描述 投票:0回答:1

基于三个条件,我想赋值为1。如果我只使用一个条件,下面的代码就可以工作。& (所以比如说把2018年省略掉)。

df[df$2017 == 1 & 
   df$2018 == 0 &
   df$x == -1, ]$y <- 1

我相信ifelse语句是我需要的,但我不明白如何赋值。1 栏目 y 内的语句。

恳请帮助

r dataframe if-statement operators
1个回答
1
投票

最好用逻辑向量子集'y',而不是子集整个数据集,然后再提取列

df$y[with(df, `2017` == 1 & 
                  `2018` == 0 &
                    x == -1)] <- 1

如果我们需要使用多个值,就把下面的 ==%in%

df$y[with(df, `2017` == 1 & 
                  `2018` == 0 &
                    x == -1 &
                  `2019` %in% c(0, 1))] <- 1
© www.soinside.com 2019 - 2024. All rights reserved.