Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算R中列表中元素的平均点_R - Fatal编程技术网

如何计算R中列表中元素的平均点

如何计算R中列表中元素的平均点,r,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 下面的列表B是基于矩阵A按行顺序的最小距离进行的分组。例如,列表[[1]]中的前四个点是矩阵A中的前四个点,即

我有矩阵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  
下面的列表B是基于矩阵A按行顺序的最小距离进行的分组。例如,列表[[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)            

meanPoints我认为您可以使用
lappy()
构建一个匿名函数来处理通过多个分组向量的迭代

# 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
#类似的数据bc我不想键入
矩阵