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