长格式 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"
或 Reduce
和 intersect
Reduce(intersect, split(dt$variable, dt$station))
#[1] "c" "d"
我有一个大约有 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"
或 Reduce
和 intersect
Reduce(intersect, split(dt$variable, dt$station))
#[1] "c" "d"