如何在R矩阵中找到同名列的行方差?

要在 R 矩阵中找到同名列的行方差,我们可以按照以下步骤操作 -

  • 首先,创建一个矩阵,其中一些列具有相同的名称。

  • 然后,使用 tapply 以及 colnames 和 var 函数来查找具有相同名称的列的行差异。

示例

创建矩阵

让我们创建一个矩阵,如下所示 -

M<-matrix(rpois(100,2),ncol=4)

colnames(M)<-c("x1","x1","x2","x2")

M

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

     x1 x1 x2 x2

[1,]  1  3 4  0

[2,]  1  0 2  4

[3,]  3  2 2  2

[4,]  2  1 1  0

[5,]  2  3 1  2

[6,]  0  1 3  2

[7,]  2  3 3  0

[8,]  5  2 3  1

[9,]  1  3 1  0

[10,] 1  0 2  2

[11,] 2  2 1  0

[12,] 4  2 0  0

[13,] 2  4 2  3

[14,] 0  2 2  1

[15,] 2  4 1  2

[16,] 2  1 1  2

[17,] 2  1 1  3

[18,] 0  0 1  3

[19,] 4  1 3  3

[20,] 1  3 2  0

[21,] 2  1 4  2

[22,] 1  3 3  2

[23,] 2  0 0  1

[24,] 2  1 2  1

[25,] 3  1 2  1

查找具有相同名称的列的行差异

使用 tapply 以及 colnames 和 var 函数来查找矩阵 M 中具有相同名称的列的行方差 -

M<-matrix(rpois(100,2),ncol=4)

colnames(M)<-c("x1","x1","x2","x2")

t(apply(M,1, function(x) tapply(x,colnames(M),var)))

输出结果
      x1   x2

[1,]  2.0 8.0

[2,]  0.5 2.0

[3,]  0.5 0.0

[4,]  0.5 0.5

[5,]  0.5 0.5

[6,]  0.5 0.5

[7,]  0.5 4.5

[8,]  4.5 2.0

[9,]  2.0 0.5

[10,] 0.5 0.0

[11,] 0.0 0.5

[12,] 2.0 0.0

[13,] 2.0 0.5

[14,] 2.0 0.5

[15,] 2.0 0.5

[16,] 0.5 0.5

[17,] 0.5 2.0

[18,] 0.0 2.0

[19,] 4.5 0.0

[20,] 2.0 2.0

[21,] 0.5 2.0

[22,] 2.0 0.5

[23,] 2.0 0.5

[24,] 0.5 0.5

[25,] 2.0 0.5

以上是 如何在R矩阵中找到同名列的行方差? 的全部内容, 来源链接: utcz.com/z/359193.html

回到顶部