Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设:
list_a <- list(1, 10) list_2 <- list(5, 20) my.foo <- function (z,w) z+w
我的主要问题是:对于每个list_对象,如何将其两个元素作为参数传递my.foo,以便获得 11 和 25?
list_
my.foo
到目前为止,我最接近解决问题的猜测是:
mapply(my.foo, list_a, list_2)
但它不适合我需要做的事情,因为它返回 6 和 30。
感谢您的任何建议,斯特凡诺
您可以使用lsandget获取对象并使用对象do.call的内容作为参数调用您的函数:
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