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