gpt4 book ai didi

r - 确定 R 中数据集中缺失的观察值(不是 NA)

转载 作者:行者123 更新时间:2023-12-01 11:27:42 24 4
gpt4 key购买 nike

我有一个相当大的数据集,总共包含近 6000 个观察值。我得到了另一个缺少观察结果的数据集。如果测量没有发生,而不是用 NA 填充行/观察,整个行/观察被省略。第二个数据集有 5500 行。

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

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

在此示例中,ID 并不是真正唯一的,因此应该有 8 个 ID。例如ID 206901 & group 11; ID 206901 & group 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>)

最佳答案

目前还不清楚预期的输出是什么,但如果我们需要在所有唯一“组”中列出特定 ID 中所有缺失的“组”,那么我们可以使用 %in%! 获取丢失的按 'ID' 分组的 'group' 的逻辑索引,并使用逻辑索引 "i1"返回丢失的 "group"ifany 缺失组或 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

或者正如@Frank 提到的,我们可以交叉连接(CJ)“ID”和“group”列中的unique 元素,然后join 'example' 的输出 on 'ID', 'group' 列,指定 'i' 作为 'example' 的否定 (!) 输出只有在“示例”中找不到的元素

example[, CJ(ID=ID, group=group, unique=TRUE)
][!example, on = c("ID", "group")]

关于r - 确定 R 中数据集中缺失的观察值(不是 NA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com