私はこのコードを使用していますが、動作しますが、data.frameの530,000レコードを処理するのにかなりの時間がかかります(7分)。if文を最適化するR
私の目的は私のフレーム内のフィールドを作成し、以下に示すように、それは人々$月の値に基づいて移入することです:
for (i in 1:nrow(people)) {
if(people$Month[i]=='JAN') {
people[i, 'new_month'] <- "1"
}
else if(people$Month[i]=='FEB') {
people[i, 'new_month'] <- "2"
}
else if(people$Month[i]=='MAR') {
people[i, 'new_month'] <- "3"
}
else if(people$Month[i]=='APR') {
people[i, 'new_month'] <- "4"
}
else if(people$Month[i]=='MAY') {
people[i, 'new_month'] <- "5"
}
else if(people$Month[i]=='JUN') {
people[i, 'new_month'] <- "6"
}
else if(people$Month[i]=='JUL') {
people[i, 'new_month'] <- "7"
}
else if(people$Month[i]=='AUG') {
people[i, 'new_month'] <- "8"
}
else if(people$Month[i]=='SEP') {
people[i, 'new_month'] <- "9"
}
else if(people$Month[i]=='OCT') {
people[i, 'new_month'] <- "10"
}
else if(people$Month[i]=='NOV') {
people[i, 'new_month'] <- "11"
}
else if(people$Month[i]=='DEC') {
people[i, 'new_month'] <- "12"
}
}
は、私はif文の多くせずにこれを行うことができ、他の方法はあります私がここでやったように?おかげさまで
マッチでルックアップテーブルを使用するか、ifelseステートメントがいくつかあると思います(私が推測するのを避けたいもの)。また、結合を使用することもできます。 – MLEN
マッチを使用します。ループする必要はありません。 – Roland