我正在从事 Coursera 机器学习项目。目标是对以下数据集执行预测建模。
> summary(training)
roll_belt pitch_belt yaw_belt total_accel_belt gyros_belt_x
Min. :-28.90 Min. :-55.8000 Min. :-180.00 Min. : 0.00 Min. :-1.040000
1st Qu.: 1.10 1st Qu.: 1.7600 1st Qu.: -88.30 1st Qu.: 3.00 1st Qu.:-0.030000
Median :113.00 Median : 5.2800 Median : -13.00 Median :17.00 Median : 0.030000
Mean : 64.41 Mean : 0.3053 Mean : -11.21 Mean :11.31 Mean :-0.005592
3rd Qu.:123.00 3rd Qu.: 14.9000 3rd Qu.: 12.90 3rd Qu.:18.00 3rd Qu.: 0.110000
Max. :162.00 Max. : 60.3000 Max. …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 apply() 或类似方法对三个矩阵列表进行矩阵乘法。
以下是示例数据:
mat1 <- matrix(c(1:16), 4, 4, byrow = TRUE)
mat2 <- matrix(c(1:16), 4, 4, byrow = TRUE)
mat3 <- matrix(c(1:16), 4, 4, byrow = TRUE)
l1 <- list(mat1, mat2, mat3)
l2 <- list(mat1, mat2, mat3)
l3 <- list(mat1, mat2, mat3)
Run Code Online (Sandbox Code Playgroud)
对于所有三个列表中的每个相应 [[n]],我想执行以下操作并将它们转储到一个新列表中:
l1[[1]] %*% l2[[1]] %*% l3[[1]]
l1[[2]] %*% l2[[2]] %*% l3[[2]]
l1[[3]] %*% l2[[3]] %*% l3[[3]]
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
mat <- lapply(c(mat1, mat2, mat3), function(x) x[1] %*% x[2] %*% x[3])
Run Code Online (Sandbox Code Playgroud)
但我没有得到我需要的东西。请帮忙?