如何在R矩阵中查找具有相同名称的列的行方差?


要查找R矩阵中具有相同名称的列的行方差,我们可以按照以下步骤操作:

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

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

示例

创建矩阵

让我们创建一个如下所示的矩阵:

M<-matrix(rpois(100,2),ncol=4)
colnames(M)<-c("x1","x1","x2","x2")
M

输出

执行上述脚本后,将生成以下输出(由于随机化,此输出将在您的系统上有所不同):

     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

更新于:2021年11月9日

87 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告