【问题标题】:How to multiple elements of two lists without using a for loop?如何在不使用 for 循环的情况下处理两个列表的多个元素?
【发布时间】:2021-09-30 23:11:08
【问题描述】:

这是一个简单的例子。如何在不使用 for 循环的情况下以 i=1:4 执行 -a[[ith element]]*b[[ith element]]?非常感谢!

a = list(
  c(1, 2),
  c(2, 7),
  c(5, 3),
  c(1, 4))
  
b = list(
matrix(1:4, 2, 2),
matrix(7:10, 2, 2),
matrix(2:5, 2, 2),
matrix(40:43, 2, 2))

操作:

-a[[1]]*b[[1]]
-a[[2]]*b[[2]]
-a[[3]]*b[[3]]
-a[[4]]*b[[4]]

最终输出尺寸:4 x 2 x2

【问题讨论】:

    标签: r list for-loop


    【解决方案1】:

    我们可以使用Map在对应的列表元素之间进行逐元素操作

    Map(`*`, a, b)
    

    -输出

    [[1]]
         [,1] [,2]
    [1,]    1    3
    [2,]    4    8
    
    [[2]]
         [,1] [,2]
    [1,]   14   18
    [2,]   56   70
    
    [[3]]
         [,1] [,2]
    [1,]   10   20
    [2,]    9   15
    
    [[4]]
         [,1] [,2]
    [1,]   40   42
    [2,]  164  172
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 2022-01-22
      • 2017-11-10
      • 2023-03-19
      • 1970-01-01
      • 2021-01-03
      • 2016-04-20
      相关资源
      最近更新 更多