我有一个包含可迭代元素的列表:
my_list <- list(
A = list(apple = 1:3, orange = "abc"),
B = tibble(banana = "qwerty", strawberry = 1:5),
C = data.frame(blueberry = "xyz", mango = "something")
)
我想go 哪里,比如说,"蓝莓".因为,它是属于名为C的data.frame的列的名称.所以输入"蓝莓",我应该得到"C".
我编写了以下函数,但我想知道是否有更优雅(高效)的解决方案?
find_list <- function(name, my_list) {
idx <- which(sapply(my_list, function(x) name %in% names(x)))
if (length(idx) > 0) {
return(names(my_list)[idx])
} else {
return(NULL)
}
}
# Test
print(find_list("strawberry", my_list)) # Prints "B"
print(find_list("mango", my_list)) # Prints "C"
print(find_list("apple", my_list)) # Prints "A"
print(find_list("nonexistent", my_list)) # Prints NULL if the name is not found