长格式 R 数据集中的公共变量

Common variable from a R dataset in long format

我有一个大约有 200000 行的数据集,其结构类似于

library(data.table)
dt <- data.frame(station = c(rep("A", 4),
                        rep("B", 2),
                        rep("C", 5),
                        rep("D", 3)),
                 variable = c(letters[3:6],
                        letters[3:4],
                        letters[3:7],
                        letters[3:5]),
                 numbers = rnorm(14)) %>%
                   data.table

我想在一个新向量中存储每个 station 重复的公共 variable。在这个例子中,结果应该是 c d,这是 A 到 B 站的公共变量。

数据集中实际变量的数量约为 1000。我将不胜感激使用 data.table 语法的解决方案。 谢谢。

按'variable'分组,得到'station'的唯一元素个数与[=22=的唯一元素个数相同的行索引(.I) ] 在整个数据集中,提取索引 ($V1) 并对行进行子集化

unique(dt[dt[, .I[uniqueN(station) == uniqueN(dt$station)], variable]$V1]$variable)
#[1] "c" "d"

Reduceintersect

Reduce(intersect, split(dt$variable, dt$station))
#[1] "c" "d"