Как добавить `$` к списку

У меня есть список списков, каждый подсписок имеет десятки элементов, и я просто хочу извлечь один из них.

x = list(`1` = list(a=1,b=2),`2` = list(a=3,b=4))

Есть много способов сделать это, но я хочу быть настолько умным, насколько это возможно, поэтому я стараюсь

lapply(x,`$`,"b")
# $`1`
# NULL
# 
# $`2`
# NULL

но это не работает, несмотря на то, что

`$`(x[[1]],"b")
# [1] 2

mapply работает так:

mapply(`$`,x,MoreArgs=list(name="b"))
# 1 2 
# 2 4 

я могу использовать lapply как это:

 lapply(x,getElement,"b")
 # $`1`
 # [1] 2
 # 
 # $`2`
 # [1] 4 

Но почему нет lapply работать с $ как это должно быть?

1 ответ

Ты можешь попробовать

lapply(x,'[[',"b")

$`1`
[1] 2

$`2`
[1] 4
Другие вопросы по тегам