Я пытаюсь найти самый простой способ сделать следующее. У меня есть фрейм данных df
с colnames(df) <- c("A", "B", "C", "D", "E")
, где все переменные закодированы как факторы. Учитывая некоторое произвольное подмножество переменных, я хочу сгенерировать все возможные подмножества строк df
, которые могут быть сгенерированы на основе всех возможных комбинаций уровней факторов этих переменных.
Итак, в основном я ищу функцию allSubsets
, которая принимает вектор имен столбцов в качестве аргументов (скажем, c("A", "E")
и возвращает список фреймов данных. Допустим, levels(df$A)
являются a1, a2
и levels(df$E)
равны e1, e2, e3
, тогда я хочу, чтобы функция генерировала список фреймов данных (длина, где элементы соответствуют:
df[df$A == 'a1' & df$E == 'e1',]
df[df$A == 'a2' & df$E == 'e1',]
df[df$A == 'a1' & df$E == 'e2',]
df[df$A == 'a2' & df$E == 'e2',]
df[df$A == 'a1' & df$E == 'e3',]
df[df$A == 'a2' & df$E == 'e3',]
Я знаю expand.grid
, но я неуверен, что это лучший способ сделать это.