与merge语句有关的问题
我的合并似乎不再有效,我不知道为什么。下面是我正在合并的两个数据集的代码和示例与merge语句有关的问题,r,dataframe,merge,data.table,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
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
我应该提到,当我使用样本数据时,合并工作与预期的一样,但当我使用整个数据时,合并不起作用。
df[lookup.table,on=(Rate=code),rank:=label][]
?我想你应该提供一个例子来说明它是如何失败的(提供代码来完整地复制它,而不仅仅是其中一部分的图片)。