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

输出结果

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

   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

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

回到顶部