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