假设:
list_a <- list(1, 10)
list_2 <- list(5, 20)
my.foo <- function (z,w) z+w
我的主要问题是:对于每个list_
对象,如何将其两个元素作为my.foo
的参数传递,以便获得11和25?
到目前为止,我最接近解决问题的猜测是:
mapply(my.foo, list_a, list_2)
但它不适合我需要做的事情,因为它返回6和30.
感谢您的任何建议, 斯特凡诺
答案 0 :(得分:2)
您可以使用ls
和get
来获取对象,do.call
使用对象的内容作为参数来调用您的函数:
sapply(ls(pattern="list_*"), function(x) do.call(my.foo, get(x)))
# list_2 list_a
# 25 11
如果您想要提供要操作的对象列表:
objs <- list(list_a, list_2)
unlist(lapply(objs, function(x) do.call(my.foo, x)))
# [1] 11 25