如何找到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"