【问题标题】:apply functions by elements of two or more lists通过两个或多个列表的元素应用函数
【发布时间】:2016-02-17 00:38:52
【问题描述】:

假设我有 3 个列表:

a=list(1,2,3)
b=list(matrix(c(1,2,3,4), ncol=2),matrix(c(3,2,3,5), ncol=2),matrix(c(1,4,2,2), ncol=2))
c=list(c(1,2),c(4,7),c(3,4))

我想根据三个列表的元素的操作创建一个向量,例如:

result=c(rep(NA,3))
for (j in 1:3) {
    result[j]=(a[[j]]-t(c[[j]])%*%b[[j]]%*%c[[j]])/2
}

不使用循环的更有效的方法是什么?

【问题讨论】:

    标签: r list apply


    【解决方案1】:

    这样的?

    mapply(function(x,y,z) (x-t(z)%*%y%*%z)/2, x = a, y = b, z = c)
    [1]  -13.0 -215.5  -55.0
    

    【讨论】:

      猜你喜欢
      • 2014-12-19
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多