如何在R data.table对象中找到按组的中位数?
当不满足参数分析的假设时,我们将继续进行非参数分析,由于数据不是正态分布的,因此非参数分析通常会处理中位数。如果要查找按组划分的中位数,并且数据存储在data.table对象中,则可以使用lapply函数,如以下示例所示。
示例
加载data.table包:
> library(data.table)
考虑下面的data.table对象:
示例
> Group<-sample(LETTERS[1:4],20,replace=TRUE)> x1<-rnorm(20,1,0.87)
> x2<-rnorm(20,5,1.2)
> x3<-rnorm(20,500,20)
> x4<-rnorm(20,50,1.14)
> dt1<-data.table(Group,x1,x2,x3,x4)
> dt1
输出结果
Group x1 x2 x3 x41: B 0.515370827 6.174187 542.9350 50.28300
2: B 0.522858146 6.976872 510.5568 49.71331
3: A 1.055456751 3.192242 476.7693 48.88280
4: A -0.024912175 2.847402 506.5335 50.67151
5: C -0.196164614 3.328402 508.6321 48.39842
6: C 1.290014270 5.556677 524.5811 48.27884
7: D 1.486977865 5.897758 486.5484 49.51944
8: D -0.007248341 6.468281 532.3197 51.45941
9: D 2.182819501 5.394480 442.8788 49.58497
10: B 2.211356101 6.443493 488.6105 49.02810
11: D -0.419805499 3.586357 485.3483 49.87930
12: B 1.865157121 6.099377 533.5723 51.51517
13: D 2.389899358 4.531113 507.7677 49.68121
14: C 0.411933014 4.602449 492.0163 50.05786
15: B 1.439917480 4.031037 475.5113 49.90952
16: A 1.749343791 5.170324 513.3880 50.25203
17: D 1.648629013 5.439521 519.4953 50.00103
18: A 1.825107893 2.489396 482.8070 49.83169
19: B 0.757930091 4.975242 501.2664 49.70943
20: D 1.989164222 3.915599 491.8682 50.91287
查找dt1中所有列的分组方式中位数:
示例
> dt1[,lapply(.SD,median),by=Group]
输出结果
Group x1 x2 x3 x41: B 1.098924 6.136782 505.9116 49.81141
2: A 1.402400 3.019822 494.6703 50.04186
3: C 0.411933 4.602449 508.6321 48.39842
4: D 1.648629 5.394480 491.8682 49.87930
让我们看另一个例子:
示例
> Class<-sample(c("First","Second","Third"),20,replace=TRUE)> Payment<-sample(1:10,20,replace=TRUE)
> dt2<-data.table(Class,Payment)
> dt2
输出结果
Class Payment1: First 5
2: First 4
3: First 3
4: Second 5
5: First 1
6: Third 8
7: First 3
8: Second 7
9: Second 6
10: Second 10
11: First 4
12: Second 2
13: Second 2
14: First 10
15: First 1
16: Third 3
17: Third 1
18: Second 5
19: Third 4
20: Second 10
查找dt2中所有列的分组方式中位数:
示例
> dt2[,lapply(.SD,median),by=Class]
输出结果
Class Payment1: First 3.5
2: Second 5.5
3: Third 3.5
以上是 如何在R data.table对象中找到按组的中位数? 的全部内容, 来源链接: utcz.com/z/351416.html