是否可以通过rowSums

时间:2019-06-27 06:19:45

标签: r contingency

我创建了一个列联表,其中包含510个类别/因子的几个变量/列。我想让因子根据所有变量/列的总和排序。

尝试将表转换回DF和rowSums,但是没有运气。 不确定在使用表格功能时是否可以排序?

DF structure
'data.frame':   2210 obs. of  7 variables:
 $ Paddock_ID: num  1 1 1 1 1 1 1 1 1 1 ...
 $ Year      : num  2010 2011 2011 2012 2012 ...
 $ LandUse   : chr  "Wheat" "Wheat" "Wheat" "Wheat" ...
 $ LUT       : chr  "Cer" "Cer" "Cer" "Cer" ...
 $ LUG       : chr  "Wheat" "Wheat" "Wheat" "Wheat" ...
 $ Tmix      : Factor w/ 6 levels "6","5","4","3",..: 6 5 6 4 6 5 4 5 6 6 
...
 $ combo     : Factor w/ 510 levels "","GLYPHOSATE",..: 416 6 59 119 30 
22 510 2 2 509

my table
a <- table(DF$"combo", DF$"LUG") 

我把表弄好了,但是想根据所有变量/列的总和来排序,即草甘膦= 124,然后是草甘膦= 69,然后百草枯= 53 ...对所有510个类别(行)都降序。

                               Barley Canola Lupin Other Pasture Wheat

GLYPHOSATE                             4     46     6     5      23    40
TRALKOXYDIM                            0      0     0     0       0     8
MCPA; GLYPHOSATE; METSULFURON          0      0     0     0       0     1
METSULFURON                            1      0     0     0       0     1
BUTROXYDIM; METSULFURON                1      0     0     0       0     0
GLYPHOSATE; METSULFURON; PYRAFLUFEN    0      0     0     0       0     1
PARAQUAT                               2      7     7     2      28     7
CLETHODIM                              0     41    15     3       0     0

1 个答案:

答案 0 :(得分:0)

使用示例数据集:

grades <- c(1,1,1,2,2,1,1,2,1,1,1,2,3)
credits <- c(4,4,4,8,4,4,8,4,4,4,8,4,4)
df <- cbind(grades, credits)

您可以使用rowSums()查找行总数。

一种可能的解决方案是为rowums创建另一列,然后使用decreasing = T进行排序。

df <- as.data.frame(df)
df$sum <- rowSums(df)
df <- df[order(df[,3], decreasing = T),]