У меня есть список списков, каждый подсписщик имеет десятки элементов, и я просто хочу извлечь один из них.
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
работы с $
так, как она должна?
Это может быть полезно: http://stackoverflow.com/q/18216084/1191259 – Frank
Благодаря @Frank - я видел, что раньше я отвечал, но это о 'lapply'-ing на подмножестве родительского списка, где я хочу подмножить дочерние списки. – Mark
Как парень, который написал это, я не знаю, что вы имеете в виду подмножествами, но все в порядке. – Frank