3
我要选择,如果第一列的值DATA2存在数据1的行:合并两个数据帧与非唯一键
data1<-data.table(a=c(1,2,3,1),b=c(1,4,6,3))
data2<-data.table(a=c(1,3,1,5,6))
Desired output:
a b
1 1
3 6
1 3
合并不起作用,因为键不是唯一的,任何其他想法?
我要选择,如果第一列的值DATA2存在数据1的行:合并两个数据帧与非唯一键
data1<-data.table(a=c(1,2,3,1),b=c(1,4,6,3))
data2<-data.table(a=c(1,3,1,5,6))
Desired output:
a b
1 1
3 6
1 3
合并不起作用,因为键不是唯一的,任何其他想法?
后“加入”这是一个没有连接的方法:
> unique(data1[a %in% data2[,a],])
a b
1: 1 1
2: 3 6
3: 1 3
我们可以为“A”柱创建在每个数据集的顺序列(“IND”)和设置键列“a”和“IND”
data1[, ind:=1:.N, a]
data2[, ind:= 1:.N, a]
setkey(data1, a, ind)[data2, nomatch=0][, ind:=NULL]
# a b
#1: 1 1
#2: 3 6
#3: 1 3
嗯,在我的系统上,它可能是这个改变了更新版本的'data.table'?我得到5行没有'唯一'。 – nrussell
我正在使用devel版本,所以可能它是不同的。 – akrun
好的,我仍然在1.9.4上。 – nrussell