Я ищу функцию, похожую на FindReplace
, которая позволит мне отображать значения на основе вектора, а не одного значения.R Сопоставление значений с вектором
У меня есть таблица поиска, которая выглядит так, что я хочу использовать для сопоставления значений в dataframe.
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
Эта таблица перекодировки имеет тысячи строк, поэтому я не могу их вручную, и мое первоначальное решение слишком неэффективно и потребуется несколько дней, чтобы работать.
dataframe Я использую сотни колонн, такие как arrmin
и atmcond
, который необходимо изменить величины от 97 до официально Отменены и т.д.
Значения от 0-100 (или сколько есть значений) измените на основе того, в каком столбце он находится. Я написал этот код ниже, но он действительно неэффективен и требует нескольких дней для строк в 300 тыс. строк.
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
вектор я создал, который содержит строковые имена каждого из столбцов, которые существуют в таблице.