簡體   English   中英

R 中所有列表對象的同時矩陣運算

[英]simultaneous matrix operations in all list objects in R

我在 R 中有一個矩陣列表,如下所示,

set.seed(1234)
data <- matrix(rnorm(3*4,mean=0,sd=1), 3, 4) 
results <- lapply(1:ncol(data), function(i) outer(data[, i], data[, i]))

結果是:

[[1]]
           [,1]        [,2]       [,3]
[1,]  1.4570077 -0.33487534 -1.3089918
[2,] -0.3348753  0.07696698  0.3008557
[3,] -1.3089918  0.30085569  1.1760127

[[2]]
          [,1]       [,2]       [,3]
[1,]  5.502298 -1.0065968 -1.1870541
[2,] -1.006597  0.1841480  0.2171611
[3,] -1.187054  0.2171611  0.2560926

[[3]]
          [,1]      [,2]      [,3]
[1,] 0.3303260 0.3141712 0.3244131
[2,] 0.3141712 0.2988064 0.3085474
[3,] 0.3244131 0.3085474 0.3186061

[[4]]
          [,1]      [,2]      [,3]
[1,] 0.7921673 0.4247196 0.8886017
[2,] 0.4247196 0.2277129 0.4764227
[3,] 0.8886017 0.4764227 0.9967755

我希望每個列表 object 對列求和並找到這些求和的最小值。 例如min.results[[1]] = min(-0.186,0.042,0.167)=-0.186

我們可以使用sapply循環遍歷list ,獲取按列求和 ( colSums ) 並返回min

sapply(results, \(x) min(colSums(x)))

-輸出

[1] -0.1868594 -0.7138005  0.9215250  1.1288552

或者使用collapse

library(collapse)
fmin(dapply(results, colSums))
[1] -0.1868594 -0.7138005  0.9215250  1.1288552

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM