В вашем конкретном случае может быть достаточно, учитывая, что имена компонентов уникальны (в противном случае возникает проблема с идентификацией).
## data
ls <- list(c(a = "one", b = "two"), x = "t4", list(c(y = "t5", z = "t6")))
getElement <- function(ls, name) unlist(ls)[[grep(name, names(unlist(ls)))]]
getElement(ls, "a")
#> [1] "one"
getElement(ls, "b")
#> [1] "two"
getElement(ls, "x")
#> [1] "t4"
getElement(ls, "y")
#> [1] "t5"