2016-05-11 9 views
0

下記のコードを参照してください。問題です誤った出力の場合はElseステートメント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) 

親切にアドバイス:コードは、新しいVARのタイトルに「その他」に設定されているすべてのもののように正確な値を示していません。

+0

'data.combined'を使用できますか?またはその一部、好ましくは 'dput'を使用して – zyurnaidi

答えて

0

簡単なテストデータ( "foobar"、 "fooMaster.bar"、 "Master.bar"、 "fooMaster。"など)で試してみると、あなたのコードは私に役立ちます。だから、おそらくこの問題は、あなたが関数へのデータセットの扱い方にあります。たとえば、「名前」列のアクセスが間違っていると、関数にNULLが処理され、「その他」が戻されます。

PS:これは返信として申し訳ありませんが、コメントはまだ低すぎます:)

関連する問題