Условное извлечение в список значений переменных, которые отображаются во всех столбцах

#r

#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:

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

Используйте intersect операцию set для всех столбцов.

Reduce это хороший способ написать intersect(intersect(sampleDT[[1]], sampleDT[[2]]), sampleDT[[3]]), ...))

Комментарии:

1. Отлично, @Gregor. Спасибо за это очень полезное и красивое решение.