合并声明问题

时间:2018-04-25 15:52:57

标签: r dataframe merge data.table

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

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

在输出示例下方,合并未产生预期结果。我期待合并在code = Rate时加入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

0 个答案:

没有答案