たとえば、社会保障番号のような数字の列があります。この列を許容されない値のリスト(例:11111111
または12345678
など)と比較したいと思います。また、最初の3桁の数字が000
のように、実行したいgrepl操作もあります。以下は、コードがどのように見えるかの骨子です。私はforループロジックを好んでいます。リストと比較して新しい列を作成するループとdf列
ssns <- c(,23454321,34565432,11111111)
badssns <- c(11111111,22222222)
for(i in 1:length(ssns)) {
if(ssns[i] %in% badssn_list) {
ssns$newcolumn==BADSSN
}
else if(grepl(first 3 numbers 0){
ssns$newcolumn==BADSSN
}
else{ssns$newcolumn==GOODSSN}
}
あなたが最初の比較のために '%に'%を使用することができます。 2つめの場合、 'grepl("^0 {3} "、ssns)'を使うことができますが、 'ssns'は始める文字でなければなりません。それで、あなたはそうすることができます。 – aichao
あなたの最初の比較は 'if(ssns [i]%in badssns)' – Jaap
とする必要がありますか?BADSSN値を取っている新しい列を初期化する必要はありますか? – Rob