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
确定R中数据集中缺失的观测值(非NAs)_R_Select_Filter_Data.table - Fatal编程技术网

确定R中数据集中缺失的观测值(非NAs)

确定R中数据集中缺失的观测值(非NAs),r,select,filter,data.table,R,Select,Filter,Data.table,我有一个相当大的数据集,总共有近6000次观测。我得到了另一个缺少观测值的数据集。如果未进行测量,则不使用NA填充行/观察值,而是省略整个行/观察值。第二个数据集有5500行 我需要确定哪些观察没有被记录,或者换句话说,第二个数据集中缺少哪些行。我指的不是NAs或缺少的值,而是没有进入数据集的观察结果 在我下面的例子中,每个观察(ID)也应该有“组”记录11,12,13,14,21,22,23,24。但是,ID 206902只有组11,12,14,21,22,23,24。它缺少13 在本例中,I

我有一个相当大的数据集,总共有近6000次观测。我得到了另一个缺少观测值的数据集。如果未进行测量,则不使用NA填充行/观察值,而是省略整个行/观察值。第二个数据集有5500行

我需要确定哪些观察没有被记录,或者换句话说,第二个数据集中缺少哪些行。我指的不是NAs或缺少的值,而是没有进入数据集的观察结果

在我下面的例子中,每个观察(ID)也应该有“组”记录11,12,13,14,21,22,23,24。但是,ID 206902只有组11,12,14,21,22,23,24。它缺少13

在本例中,ID不是唯一的,因此应该有8个ID。 例如,ID 206901和组11;ID 206901和组12等

如何轻松确定缺少哪些观察(ID)?同样,每个ID应该有8条记录

example <- structure(list(ID = c(206901L, 206901L, 206901L, 206901L, 206901L, 
206901L, 206901L, 206901L, 206902L, 206902L, 206902L, 206902L, 
206902L, 206902L, 206902L), group = c(11L, 12L, 13L, 14L, 21L, 
22L, 23L, 24L, 11L, 12L, 14L, 21L, 22L, 23L, 24L)), .Names = c("ID", 
"group"), sorted = "ID", class = c("tbl_dt", "tbl", "data.table", 
"data.frame"), row.names = c(NA, -15L), .internal.selfref = <pointer: 0x0000000000100788>)

example我们并不清楚预期的输出是什么,但是如果我们需要在所有唯一的“组”中列出特定ID中缺少的所有“组”,那么我们可以使用%
中的
%和
获得按“ID”分组的缺少的“组”的逻辑索引,并返回缺少的“组”通过使用逻辑索引“i1”
如果
存在任何
缺失组或
else
返回“NA”

Un <- unique(example[["group"]])
example[, {i1 <- !Un %in% group
           list(NotFound = if(any(i1)) Un[i1] else NA_integer_) 
          }, ID]
#       ID NotFound
#1: 206901       NA
#2: 206902       13
example[, CJ(ID=ID, group=group, unique=TRUE)
                     ][!example, on = c("ID", "group")]