有条件地将出现在所有列中的变量值提取到列表中

时间:2019-03-14 17:17:08

标签: r

鉴于下面的示例数据sampleDT,对于创建函数的任何帮助将不胜感激,该函数使我可以有条件地提取到列表,而无需重复出现在所有列中的变量值-至少在每个列中出现一次列,无论位置如何。

# sample data
sampleDT<-structure(list(V2 = c(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), 
    V3 = c(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2), .indices = c(6, 
    7, 8, 9, 10, 11, 12, 13, 14, 15, 16), .indices3 = c(1, 2, 
    3, 4, 5, 6, 7, 8, 9, 10, 11)), row.names = c(NA, -11L), class = "data.frame")

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

Reduce(f = intersect, x = sampleDT)
[1]  6  7  8  9 10 11

在所有列上使用intersect设置操作。

Reduce是写intersect(intersect(sampleDT[[1]], sampleDT[[2]]), sampleDT[[3]]), ...))

的好方法