【问题标题】:assigning lists elements as function arguments将列表元素分配为函数参数
【发布时间】:2014-04-19 13:10:34
【问题描述】:

假设:

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。

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

【问题讨论】:

    标签: r function mapply


    【解决方案1】:

    您可以使用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
    

    【讨论】:

    • 第二个选项是我也在尝试的,谢谢!斯特凡诺
    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2020-04-18
    • 2020-09-27
    • 2017-04-09
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多