输出不正确如果那么在R中的Else语句

时间:2016-05-11 13:14:41

标签: r

请参阅下面的代码。代码没有显示准​​确的值,因为它在新的var标题中被设置为“Others”:

extractTitle<- function(name){
  name<-as.character(name)

  if (length(grep("Miss.",name))>0){
    return("Miss.")
  }else if (length(grep("Master.",name))>0){
    return("Master.")
  }else if (length(grep("Mrs.",name))>0){
    return("Mrs.")
  }else if (length(grep("Mr.",name))>0){
    return("Mr.")
  }else {
    return("Other")
  }
}

titles<- NULL
for (i in 1:nrow(data.combined)){
  titles<- c(titles,extractTitle(data.combined[i,"name"]))
}

data.combined$title<- as.factor(titles)

请告知问题在哪里。

1 个答案:

答案 0 :(得分:0)

当您使用简单的测试数据(“foobar”,“fooMaster.bar”“Master.bar”,“fooMaster”等)尝试时,您的代码适用于我。所以问题可能在于如何处理函数的数据集。例如,如果拼错了“name”列访问权限,则会对函数处理NULL,这反过来会导致“Other”被传回。

PS:很抱歉发布这个作为答案,但我还是太低了评论:)