使用多个逻辑语句创建指示变量

  • 本文关键字:语句 创建 指示 变量 r
  • 更新时间 :
  • 英文 :


我是R的新手,通常是编程。我想根据多个嵌套条件创建指示变量。我的数据看起来像这样:

id   city   income
 1    A      100
 2    A      65
 3    B      110
 4    B      80
 5    C      60

我想编写一个执行类似事情的脚本:

        if (mydata$city=="A" & mydata$income >= 90) {
            mydata$x <- 1 
    }       else if (mydata$city=="B" & mydata$income >= 100) {
            mydata$x <- 1
    }       else {
            mydata$x <- 0
}

我希望最终结果是这个

id   city  income  x
 1    A     100    1
 2    A     65     0
 3    B     110    1
 4    B     80     0
 5    C     60     0

预先感谢您的任何建议!

定义您的功能:

myfun <- function(x,y) {
        if(x == "A" & y >= 90) {
                1
        } else if(x == "B" & y >= 100) {
                1
        } else 0
}

使用 mapply

mydata$x <- mapply(myfun, mydata$city, mydata$income)
dplyr::mutate(myData, x = ifelse((city == "A" & income >= 90) | (city == "B" & income >= 100), 1, 0))
  id city income x
1  1    A    100 1
2  2    A     65 0
3  3    B    110 1
4  4    B     80 0
5  5    C     60 0

我们可以使用 data.table

library(data.table)
setDT(df1)[, x := as.integer(city =="A" & income >= 90 | city == "B" & income >=100)]
#   id city income x
#1:  1    A    100 1
#2:  2    A     65 0
#3:  3    B    110 1
#4:  4    B     80 0
#5:  5    C     60 0

或使用base R

df1$x <- with(df1, as.integer(city =="A" & income >= 90 | city == "B" & income >=100))

最新更新