У меня есть список, который выглядит примерно так ..
$mpg
mpg_0.01 mpg_0.25 mpg_0.5
1 0.210 5.250 10.50
2 0.210 5.250 10.50
3 0.228 5.700 11.40
4 0.214 5.350 10.70
5 0.187 4.675 9.35
6 0.181 4.525 9.05
$cyl
cyl_0.01 cyl_0.25 cyl_0.5
1 0.06 1.5 3
2 0.06 1.5 3
3 0.04 1.0 2
4 0.06 1.5 3
5 0.08 2.0 4
6 0.06 1.5 3
Я хочу создать новый список, в котором каждый элемент представляет собой отдельную комбинацию переменных из исходного списка, чтобы в результате чего-то получилосьнапример, так:
$`1`
mpg_01 cyl_25
1 0.210 1.5
2 0.210 1.5
3 0.228 1.0
4 0.214 1.5
5 0.187 2.0
$`2`
mpg_01 cyl_5
1 0.210 3
2 0.210 3
3 0.228 2
4 0.214 3
5 0.187 4
$`3`
mpg_25 cyl_5
1 5.250 3
2 5.250 3
3 5.700 2
4 5.350 3
5 4.675 4
...
Порядок переменных в списке не имеет значения, поэтому нам потребуется только одна из (mpg_01, cyl_5) или (cyl_5, mpg_01).
Я думаю, что использование cross
из purrr
делает то, что мне нужно, но не соответствует именам столбцов
Вот некоторые примеры данных:
library(tidyverse)
df <- list(
mpg =
mtcars %>%
head() %>%
transmute(
mpg_0.01 = mpg * 0.01,
mpg_0.25 = mpg * 0.25,
mpg_0.5 = mpg * 0.5
),
cyl =
mtcars %>%
head() %>%
transmute(
cyl_0.01 = cyl * 0.01,
cyl_0.25 = cyl * 0.25,
cyl_0.5 = cyl * 0.5
)
)