-1
我正在尋找一個類似於FindReplace
的函數,這將允許我根據矢量而不是單個值映射值。R用矢量映射的值映射
我有一個看起來像這樣的查找表,我想用它來映射數據框中的值。
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
此查找表有成千上萬行的,所以我不能手動輸入他們,和我原來的解決方案是效率太低,將需要數天才能運行。
我使用具有幾百列如arrmin
和atmcond
需要從97改變的值,以正式取消該
的值從0-100(或然而許多值有)數據幀,等等。根據它所在的列進行更改。我已經在下面編寫了這些代碼,但它效率非常低,需要幾天才能運行30萬行。
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
是我創建了一個包含每個中存在的查找表中的列的字符串名稱的向量。