R 在查找表中使用多个参考值
使用R中的data.table,我有两个数据表。一个是我的实际数据集,另一个是查找表 数据集:R 在查找表中使用多个参考值,r,data.table,R,Data.table,使用R中的data.table,我有两个数据表。一个是我的实际数据集,另一个是查找表 数据集: dt <- data.table(Name = c("John", "Bob", "Sue", "Trish"), Ref = c("a", "A0", "BA", "c")) **Name** **Ref** John a Bob A0 Sue BA Trish c dt也许您可以首先熔化查找表,将所有引用都放
dt <- data.table(Name = c("John", "Bob", "Sue", "Trish"), Ref = c("a", "A0", "BA", "c"))
**Name** **Ref**
John a
Bob A0
Sue BA
Trish c
dt也许您可以首先熔化查找表,将所有引用都放在一列中,并将相应的值放在它们旁边,然后合并数据表
newlookup=melt(lookup,id.vars="Value")
setnames(newlookup, c("Value", "oldRef", "Ref"))
merge(dt,newlookup,by="Ref")
dt1 <- dt[dt[, nchar(Ref) == 2,],]
dt2 <- dt[dt[, nchar(Ref) == 1,],]
setnames(lookup, c("Ref1", "Ref", "Value"))
setkey(lookup, Ref)
dt1Merged <- merge(dt1, lookup, by = "Ref")[,c(1:2, 4), with = F]
setnames(lookup, c("Ref", "Ref2", "Value"))
setkey(lookup, Ref)
dt2Merged <- merge(dt2, lookup, by = "Ref")[,c(1:2, 4), with = F]
result <- rbind(dt1Merged, dt2Merged)
newlookup=melt(lookup,id.vars="Value")
setnames(newlookup, c("Value", "oldRef", "Ref"))
merge(dt,newlookup,by="Ref")