如何在R中的data.table对象中找到同名列的行标准差?

要data.table在 R中的对象中找到同名列的行标准差,我们可以按照以下步骤操作 -

  • 首先,创建一个data.table具有相同名称的列的对象。

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

示例

创建data.table对象

让我们创建一个data.table对象,如下所示 -

library(data.table)

DT<-

data.table(x=rpois(25,5),y=rpois(25,1),x=rpois(25,4),y=rpois(25,10),check.names=FALSE)

DT

输出结果

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

     x y x  y

1:   3 2 2  6

2:   6 1 4  8

3:   6 1 2  8

4:   3 0 2 10

5:   2 1 1 14

6:   5 1 8  7

7:   3 2 6 10

8:   5 0 1  7

9:   5 0 4 10

10:  5 1 5 12

11:  6 1 3 13

12:  2 1 6 18

13:  1 0 6 10

14:  7 1 5 3

15: 11 0 3 15

16:  3 1 6 10

17:  4 0 3  2

18:  5 3 3  8

19:  8 2 4 15

20:  5 1 1 11

21: 10 0 4 10

22:  4 1 6  7

23:  7 0 6 10

24:  5 1 6  9

25:  6 1 5  5

     x y x  y

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

使用 tapply 以及 colnames 和 sd 函数来查找data.table对象 DT 中具有相同名称的列的行标准偏差-

library(data.table)

DT<-

data.table(x=rpois(25,5),y=rpois(25,1),x=rpois(25,4),y=rpois(25,10),check.names=FALSE)

t(apply(DT,1, function(x) tapply(x,colnames(DT),sd)))

输出结果
         x         y

[1,]  0.7071068 2.828427

[2,]  1.4142136 4.949747

[3,]  2.8284271 4.949747

[4,]  0.7071068 7.071068

[5,]  0.7071068 9.192388

[6,]  2.1213203 4.242641

[7,]  2.1213203 5.656854

[8,]  2.8284271 4.949747

[9,]  0.7071068 7.071068

[10,] 0.0000000 7.778175

[11,] 2.1213203 8.485281

[12,] 2.8284271 12.020815

[13,] 3.5355339 7.071068

[14,] 1.4142136 1.414214

[15,] 5.6568542 10.606602

[16,] 2.1213203 6.363961

[17,] 0.7071068 1.414214

[18,] 1.4142136 3.535534

[19,] 2.8284271 9.192388

[20,] 2.8284271 7.071068

[21,] 4.2426407 7.071068

[22,] 1.4142136 4.242641

[23,] 0.7071068 7.071068

[24,] 0.7071068 5.656854

[25,] 0.7071068 2.828427

以上是 如何在R中的data.table对象中找到同名列的行标准差? 的全部内容, 来源链接: utcz.com/z/335450.html

回到顶部