У меня есть фрейм данных, который разделен на список по его идентификатору, как показано ниже. Теперь я хотел бы создать список фреймов данных всех возможных комбинаций, всегда используя только одну строку каждого фрейма данных в списке. Я уже экспериментировал с expand.grid
и combn
в вызове lapply
, используя names(data)
для индексации кадров данных, но не могу понять, как это сделать.
Использование набора данных iris
вот краткий пример:
library(dplyr)
# data
iris %>%
select(Sepal.Length,Sepal.Width,Species) %>%
mutate_if(is.numeric,round,0) %>%
distinct() %>%
split(.,.$Species)
# This is what you get
$`setosa`
Sepal.Length Sepal.Width Species
1 5 4 setosa
2 5 3 setosa
3 4 3 setosa
4 6 4 setosa
5 4 2 setosa
$versicolor
Sepal.Length Sepal.Width Species
6 7 3 versicolor
7 6 3 versicolor
8 6 2 versicolor
9 5 2 versicolor
10 5 3 versicolor
$virginica
Sepal.Length Sepal.Width Species
11 6 3 virginica
12 7 3 virginica
13 8 3 virginica
14 5 2 virginica
15 7 2 virginica
16 7 4 virginica
17 6 2 virginica
18 8 4 virginica
И теперь я хочу получить все возможные кадры данных, всегда используя одну строку каждого кадра данных в приведенном выше списке, например:
$[[1]]
Sepal.Length Sepal.Width Species
1 5 4 setosa
6 7 3 versicolor
11 6 3 virginica
$[[2]]...
Спасибо за ваши предложения!