r - 如何在不使用 for 循环的情况下处理两个列表的多个元素?
问题描述
这是一个简单的例子。如何在不使用 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
解决方案
我们可以用来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
推荐阅读
- azure-iot-edge - How to access non container App data/Logs from an Azure-IoT-Edge Container App in gateway/Server?
- angularjs - AngularJS,ui-router 不显示模板
- python - Pandas 第 N 个最后一行切片
- excel - O365 - Providing list of holidays from 2 sources in networkdays function in excel
- spring-boot - MVN command not found on intellij
- python - Iterate a python list values where each combination occurs only once but position independently
- azure - Connect personal to organizational Account in Azure DevOps
- sql-server - SQL Server Management Studio V18.6 does not show Actual Elapsed Time in Actual Execution Plan
- angular - How to access exported function from a library in a service class in Angular?
- php - How do I use components to display my dynamic navigation bar using laravel?