如何在 R 数据框中查找具有相同名称的列的行方差?


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

  • 首先,创建一个数据框,其中包含一些具有相同名称的列。

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

示例

创建数据框

让我们创建一个如下所示的数据框:

df<-
data.frame(x=rpois(25,1),x=rpois(25,10),y=rpois(25,3),y=rpois(25,5),check.names=FALSE)
df

输出

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

   x  x y  y
1  1 13 4  5
2  2  9 5  9
3  1 13 6  7
4  1 16 4  4
5  2  7 2  6
6  1  9 2  5
7  1 11 7  7
8  1  9 3  7
9  1 13 4  1
10 1 10 6  6
11 3  7 3  5
12 0 11 4  2
13 0  9 4  7
14 0  7 3  7
15 0  9 2 10
16 0 14 1  3
17 0 12 4  6
18 3 10 1  8
19 1 13 2  4
20 0  7 3  9
21 0 14 3  2
22 0 10 2  4
23 0  4 1  4
24 2  9 1  4
25 1  5 1 11

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

使用 tapply 以及 colnames 和 var 函数来查找数据框 df 中具有相同名称的列的行方差:

df<-
data.frame(x=rpois(25,1),x=rpois(25,10),y=rpois(25,3),y=rpois(25,5),check.names=FALSE)
t(apply(df,1, function(x) tapply(x,colnames(df),var)))

输出

        x    y
[1,]   72.0 0.5
[2,]   24.5 8.0
[3,]   72.0 0.5
[4,]  112.5 0.0
[5,]  12.5  8.0
[6,]  32.0  4.5
[7,]  50.0  0.0
[8,]  32.0  8.0
[9,]  72.0  4.5
[10,] 40.5  0.0
[11,]  8.0  2.0
[12,] 60.5  2.0
[13,] 40.5  4.5
[14,] 24.5  8.0
[15,] 40.5 32.0
[16,] 98.0  2.0
[17,] 72.0  2.0
[18,] 24.5 24.5
[19,] 72.0  2.0
[20,] 24.5 18.0
[21,] 98.0  0.5
[22,] 50.0  2.0
[23,]  8.0  4.5
[24,] 24.5  4.5
[25,]  8.0 50.0

更新于: 2021-11-12

219 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告