如何在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
广告