簡體   English   中英

如何計算R中列表中元素的均值

[英]How to calculate mean points for elements in a List in R

我有如下的矩陣A和列表B:

矩陣A:

     [,1][,2]
[1,]   1   1   
[2,]   1   2   
[3,]   2   1   
[4,]   2   2   
[5,]   10  1   
[6,]   10  2   
[7,]   11  1   
[8,]   11  2   
[9,]   5   5   
[10,]  5   6  

下面的ListB是基於最小距離進行的分組,該最小距離是基於矩陣A的行的順序。例如,List [[1]]的前四個點是矩陣A的前四個點,即(1,1 )(1,2)(2,1)(2,2),它屬於第1組,依此類推

清單B:

    [[1]]
    [1] 1 1 1 1 3 2 3 2 1 1

    [[2]]
    [1] 3 3 3 3 3 3 1 2 3 3

    [[3]]
    [1] 1 1 2 2 3 3 3 3 2 2

如何根據分組分別計算組1,組2和組3的點的平均值?

如果只有一個向量,這就是我的方法:

    meanPoints <- apply(MatrixA, 2, tapply, ListB, mean)            

但是,如何執行循環以獲取R中列表[[1]] [[2]] [[3]]的均值?

我認為您可以使用lapply()來建立匿名函數來處理通過多個分組向量進行的迭代。

# similar data bc I didn't want to type that
MatrixA <- matrix(data = 1:20, ncol = 2)
B <- c(rep(1:3, length.out = 10))
C <- c(rep(3:1, length.out = 10))
listB <- list(B, C)

# just wrapping your single vector solution
lapply(lists, function(x) {apply(MatrixA, 2, tapply, x, mean)})

[[1]]
  [,1] [,2]
1  5.5 15.5
2  5.0 15.0
3  6.0 16.0

[[2]]
  [,1] [,2]
1  6.0 16.0
2  5.0 15.0
3  5.5 15.5

那是您要找的東西嗎?

暫無
暫無

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

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