如何在R的data.table对象中查找具有相同名称的列的行方差?


为了在R的data.table对象中查找具有相同名称的列的行方差,我们可以按照以下步骤操作:

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

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

示例

创建data.table对象

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

library(data.table)
DT<-
data.table(x=rpois(25,5),y=rpois(25,5),x=rpois(25,2),y=rpois(25,1),check.names=FALSE)
DT

输出

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

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

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

使用tapply结合colnames和var函数来查找data.table对象DT中具有相同名称的列的行标准差:

library(data.table)
DT<-
data.table(x=rpois(25,5),y=rpois(25,5),x=rpois(25,2),y=rpois(25,1),check.names=FALSE)
t(apply(DT,1, function(x) tapply(x,colnames(DT),var)))

输出

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

更新于:2021年11月15日

浏览量:109

启动您的职业生涯

完成课程获得认证

开始学习
广告