mam Poniższa listaoperator Dolar jako argument funkcji dla sapply nie działa zgodnie z oczekiwaniami
test_list=list(list(a=1,b=2),list(a=3,b=4))
i chcę, aby wyodrębnić wszystkie elementy z listy nazwy elementu a
.
mogę to zrobić poprzez
sapply(test_list,`[[`,"a")
który daje mi poprawny wynik
#[1] 1 3
Gdy próbuję samo z Rs dolara operatora $
, mam NULL
sapply(test_list,`$`,"a")
#[[1]]
#NULL
#
#[[2]]
#NULL
Jednak jeśli używam go na jednym elemencie z test_list
działa zgodnie z oczekiwaniami
`$`(test_list[[1]],"a")
#[1] 1
Czy brakuje tu czegoś oczywistego?
Bardzo interesująca odpowiedź! Zasadniczo pokazuje, że już 'x =" a ";" $ "(test_list [[1]], x);' daje niepoprawny wynik. – cryo111
Również, podobnie jak powiedziałeś, '" $ "(test_list [[1]], a)' daje '1', chociaż nie zdefiniowano żadnego obiektu' a'. – cryo111