-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
是我创建了一个包含每个中存在的查找表中的列的字符串名称的向量。