Не уверен, как это сделать, используя list.select
, но вот решение purrr
:
library(purrr)
param <- c("type", "score")
map(x, `[`, param)
это, очевидно, также работает с lapply
:
lapply(x, `[`, param)
но если у вас есть более глубокий вложенный список списков, используйте modify_depth
:
modify_depth(x, 1, `[`, param)
Аргумент .depth
может быть скорректирован, чтобы углубиться в иерархию.
Выход:
$p1
$p1$type
[1] "A"
$p1$score
$p1$score$c1
[1] 10
$p1$score$c2
[1] 8
$p2
$p2$type
[1] "B"
$p2$score
$p2$score$c1
[1] 9
$p2$score$c2
[1] 9
$p3
$p3$type
[1] "B"
$p3$score
$p3$score$c1
[1] 9
$p3$score$c2
[1] 7