2016-05-11 23 views
0

请参阅下面的代码。代码并不显示准确的价值,因为它在新的变种标题设置为“其他”的一切:错误的输出如果然后在R中的其他语句

哪里是问题
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) 

请咨询。

+0

你可以提供'data.combined'使用?或者它的一部分,最好使用'dput' – zyurnaidi

回答

0

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

PS:抱歉张贴这个答案,但我仍然太低评论:)