2014-04-19 37 views
1

假设:分配列表元素作为函数的参数

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

感谢您的任何建议, 斯特凡诺

回答

2

您可以使用lsget得到的对象和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 
+0

第二个选项是一个我也试图去努力,谢谢!斯特凡诺 – Stezzo

相关问题