根据两个约束子集 data.frame

Subsetting data.frame upon two constraints

假设我想使用 2 个约束进行子集化。 1,第一列中的值相同 2,同时,第二列的值相同

比如我有一个数据框

a <- rep(1:5)
b <- c(1,2,2,2,1,1,1,2,2,2)
data <- data.frame(a,b)

a 是配对识别号, b 代表性别

现在我们想要创建一个数据集,其中我们有匹配的 ID 和性别。

是使用 while 命令创建循环还是使用 duplicated

预期结果应该 return 此处以绿色突出显示的数据子集

你可以试试

data[with(data, !!ave(b, a, FUN=function(x) 
                      length(unique(x))==1)),]

library(dplyr)
data %>%
      group_by(a) %>%
      filter(n_distinct(b)==1)

library(data.table)
setDT(data)[,.(b=b[length(unique(b))==1]) , a]

或@David Arenburg

提供的另一个data.table解决方案
setDT(data)[, if (length(unique(b)) == 1) .SD, a]