首页 > 解决方案 > 合并语句的问题

问题描述

我的合并似乎不再起作用,我不知道为什么。下面是我正在合并的两个数据集的代码和示例

head(lookup.table)

   code label
1:  I-2     1
2:  I-3     2
3:  I-4     3
4:  I-5     4
5:  I-6     5
6:  I-7     6  

df 
           Rate
1            S-4
2            S-4
3            S-4
4            S-1
5            S-2
6            S-4

重现示例的代码

library(data.table)

letter=c('I','S','P','D')
start=c(2,1,1,1)
end=c(7,4,3,2)
label=1:15
code.table = data.table(letter,start,end)
code.vector = unlist(apply(code.table,1,function(x) paste(x[1],x[2]:x[3],sep='-')))
lookup.table = data.table(code=code.vector,label=label)

df = data.table(Rate = paste0("S-", c(4,4,4,1,2,4)))

试图:

df$rank = merge(df,lookup.table,by.x="Rate",by.y="code",all.x=TRUE,sort=F)$label

在输出样本下方,合并未产生预期结果。当代码 = 速率时,我期望合并加入 lookup.table 和 df。

                 rank           Rate
1                  10            S-4
2                  10            S-4
3                  10            S-3
4                  10            I-5
5                  10            I-5
6                  10            I-6

标签: rdataframemergedata.table

解决方案


推荐阅读