无法弄清楚如何使用IF语句

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

我想为我的数据库创建一个分类变量:我想创建一个“ Same_Region”组,其中包括在同一地区生活和工作的所有人员,为那些不住在同一地区的人提供一个“ Diff_Region”。我尝试使用IF语句,但实际上我不知道该如何正确地说“如果可变的居住区和工作区相同,则返回...”。这是我第一次尝试用自我R逼近,我感到有点失落。

我试图将两个变量(由2个字母组成-f.i.“ BO”)作为字符,并使用“ grep”命令。但这最终没有结果。然后,我尝试将两个变量都作为因子,但没有太大变化。

----在R -----

extractSamepr <- function(RegionOfRes, RegionOfWo){
  if(RegionOfRes== RegionOfWo){
    return("SamePr")
  } 
  else {
    return("DiffPr")
  }    

SamePr <- NULL 

for (i in 1:nrow(Data.Base)) {
  SamePr <- c(SamePr, extractSamepr(Data.Base[i, "RegionOfRes", "RegionOfWo"]))
}    

r if-statement
1个回答
0
投票

@ deepseefan的ifelse中提出的comment方法是解决此类问题的标准方法。这是另一个。它利用以下事实:将FALSE/TRUE编码为整数0/1以基于相等性创建逻辑矢量,然后将1添加到该矢量中,从而得到1/2值的矢量。该结果在函数的最终指令中用于索引具有两个可能结果的向量。

extractSamepr <- function(DF){
  i <- 1 + (DF[["RegionOfRes"]] == DF[["RegionOfWo"]])
  c("DiffPr", "SamePr")[i]
}

Data.Base$SamePr <- extractSamepr(Data.Base)
© www.soinside.com 2019 - 2024. All rights reserved.