如何找到R中具有最大和的列?

要找到总和最大的列,我们可以使用sort函数对colSums进行降序排序,并访问输出的第一个元素,即最大的总和。例如,如果我们有一个名为df的数据框,其中包含多个列,则可以使用以下命令找到总和最大的列:

str(sort(colSums(df[,1:length(df)]),decreasing=TRUE)[1])

例1

考虑以下数据帧-

> x1<-rpois(20,5)
> x2<-rpois(20,5)
> x3<-rpois(20,5)
> x4<-rpois(20,5)
> df1<-data.frame(x1,x2,x3,x4)
> df1
输出结果
   x1 x2 x3 x4
1   3  4  4  5
2   6 10  3  3
3   6  5  2  5
4   7  6  2 13
5   4  7  7  3
6   2  4  3  4
7   5  7  2  2
8   1  2  8  3
9  10  1  3  2
10  6  4  8  5
11  6  7  2  2
12  6  3  4  6
13  8  6  8  5
14  4  6  1  6
15  3  1  7 10
16  4  3  6  8
17  1  1  8  8
18  6  6  5  6
19  7  3  2  6
20  6  6  4  5

查找在df1中具有最大和的列-

> str(sort(colSums(df1[,1:length(df1)]),decreasing=TRUE)[1])
输出结果
Named num 107
- attr(*, "names")= chr "x4"

例2

> y1<-rnorm(20)
> y2<-rnorm(20)
> y3<-rnorm(20)
> df2<-data.frame(y1,y2,y3)
> df2
输出结果
            y1          y2          y3
1  -0.67247167 -0.03504090 -0.66697231
2  -0.68074045 -0.25805863  0.84996560
3   0.69900478 -1.88632900 -0.72983709
4  -1.18607010  1.41421023  1.13006070
5  -0.32133261 -0.63577768 -0.11396980
6  -1.32619037  0.61646926  0.89315793
7   0.01712191 -1.07839179 -0.34707437
8   0.16517472 -0.80356200  0.37064564
9   2.52589496 -0.37596219 -0.36734004
10 -0.14817698 -0.11656378 -2.23320356
11 -0.53926289  0.21150137 -0.20352309
12  0.22330625  0.04340639  0.50600645
13 -0.82293233  0.22586452 -0.82058059
14 -0.38483674 -0.38651706 -1.33218404
15 -0.33143327 -0.12833993 -0.33432244
16  0.40020483 -0.58673910 -0.51292024
17 -2.66155329 -0.66032907 -0.98167877
18 -1.49012484  0.91082996 -0.68865703
19 -2.17102582  1.49218359 -0.03119144
20 -0.28752746 -0.27363896 -0.59666780

查找在df2中具有最大总和的列-

> str(sort(colSums(df2[,1:length(df2)]),decreasing=TRUE)[1])
输出结果
Named num -2.31
- attr(*, "names")= chr "y2"

范例3

> z1<-rnorm(20,5,1.2)
> z2<-rnorm(20,5,1.2)
> z3<-rnorm(20,5,1.2)
> df3<-data.frame(z1,z2,z3)
> df3
输出结果
         z1       z2       z3
1  4.195753 5.237520 4.718239
2  5.406601 5.467189 5.656534
3  4.107268 4.206512 5.002071
4  4.273912 3.318249 3.851186
5  5.658334 4.044090 5.726887
6  5.794366 6.746781 5.573617
7  5.858288 6.643365 3.670364
8  5.996933 3.587626 3.603394
9  4.828025 5.512565 7.352176
10 5.232532 6.235726 2.827798
11 1.632488 6.318988 5.206436
12 4.033981 7.281025 5.996814
13 4.611700 6.482257 2.515667
14 5.551795 4.824941 4.938571
15 7.026488 5.153775 3.043448
16 4.917164 6.888027 6.673310
17 5.164733 5.986679 4.329136
18 5.114344 2.379626 6.442586
19 5.254078 5.369151 4.240947
20 7.874268 5.076189 7.012805

查找在df3中具有最大总和的列-

> str(sort(colSums(df3[,1:length(df3)]),decreasing=TRUE)[1])
输出结果
Named num 107
- attr(*, "names")= chr "z2"