Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与merge语句有关的问题_R_Dataframe_Merge_Data.table - Fatal编程技术网

与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][]
?我想你应该提供一个例子来说明它是如何失败的(提供代码来完整地复制它,而不仅仅是其中一部分的图片)。