Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
从R中的两个表中查找不重叠的值_R_Data.table - Fatal编程技术网

从R中的两个表中查找不重叠的值

从R中的两个表中查找不重叠的值,r,data.table,R,Data.table,我有两个表格如下: library(data.table) Input<-data.table("Date"=seq(1:10),"Cycle"=c(90,100,130,180,200,230,250,260,300,NA)) Date Cycle 1: 1 90 2: 2 100 3: 3 130 4: 4 180 5: 5 200 6: 6 230 7: 7 250 8: 8 260

我有两个表格如下:

library(data.table)
Input<-data.table("Date"=seq(1:10),"Cycle"=c(90,100,130,180,200,230,250,260,300,NA))
Date Cycle
 1:    1    90
 2:    2   100
 3:    3   130
 4:    4   180
 5:    5   200
 6:    6   230
 7:    7   250
 8:    8   260
 9:    9   300
10:   10   320
 FDate<-data.table("Date"=seq(1:9),"Cycle"=c(90,100,130,180,200,230,250,260,300),"Task"=c("D","A","B,C",NA,"A,D","D","C","D","A,C,D"))
   Date Cycle  Task
1:    1    90     D
2:    2   100     A
3:    3   130   B,C
4:    4   180  <NA>
5:    5   200   A,D
6:    6   230     D
7:    7   250     C
8:    8   260     D
9:    9   300 A,C,D
当我尝试这个
setdiff(FDate$Date,Input$Date)

它是这样的
integer(0)

我们可以使用
data.table中的
fsetdiff
,只包括两个数据集中的公共列

fsetdiff(Input, FDate[ , names(Input), with = FALSE])
#   Date Cycle
#1:   10   320
或者像@Frank提到的那样加入

Input[!FDate, on=.(Date)]
#   Date Cycle
#1:   10   320

在OP的代码中

setdiff(FDate$Date,Input$Date)

第一个参数来自“FDate”的“Date”列,该列中的所有元素也位于主数据“Input$Date”中。因此,它返回
整数(0)
)。如果我们做相反的操作,它将返回10

和反连接:
Input[!FDate,on=(Date)]
假设“非重叠日期”足够,或者
Input[!FDate,on=(Date,Cycle)]
我不知道数据。表可以肯定地说,但似乎与提供了几个选项的数据相关
setdiff(FDate$Date,Input$Date)