-1
私はFindReplace
のような関数を探しています。これは、単一の値ではなくベクトルに基づいて値をマップすることができます。ベクトルによる値の割り当て
データフレーム内の値をマップするために使用するルックアップテーブルがあります。
Headers: COLUMN_NAME, CODE, DESCRIPTION
Row1: arrmin, 97, Officially Cancelled
Row2: arrmin, 98, Unknown if Arrived
Row3: atmcond, -1, Blank
Row4: atmcond, 0, No Additional Atmospheric Conditions
このルックアップテーブルは、行の数千を持っているので、私はそれらを手動で入力することができない、と私の最初の溶液はあまりにも非効率的ですし、実行に数日かかります。
(存在又はしかし多くの値)
値0〜100等97から変更された値が正式にキャンセルする必要があるようなarrmin
とatmcond
として、私は列の数百を持って使用しているデータフレーム、私はこのコードを以下に書いたことがありますが、実際には非効率的で、300k行の実行に数日かかることがあります。
columnsToReplace <- which(colnames(CRASH) %in% CapitalColumns)
dfColumns <- colnames(CRASH)
for (i in columnsToReplace){
tempColumn <- dfColumns[i]
tempLookup <- capitalLookupTable[which(capitalLookupTable$COLUMN_NAME ==tempColumn),]
CRASH <- FindReplace(data=CRASH,Var=tempColumn,replaceData = capitalLookupTable,
from = "Code",to = "Description",exact=T)
}
columnsToReplace
ルックアップテーブルに存在する列のそれぞれの文字列名が含まれている私が作成したベクトルです。