Можно ли заказать таблицу сопряженности R по rowSums - PullRequest
1 голос
/ 27 июня 2019

Я создал таблицу сопряженности с несколькими переменными / столбцами по 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") 

Я получаю таблицу в порядке, но хотела бы, чтобы она была упорядочена по сумме всех переменных / столбцов, т.е. Glyphosate = 124, затем clethodim = 69, затемparaquat = 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 голосов
/ 27 июня 2019

Используя пример набора данных:

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().

Одним из возможных решений было бы создать еще один столбец для строк и затем отсортировать с помощью decreasing = T.

df <- as.data.frame(df)
df$sum <- rowSums(df)
df <- df[order(df[,3], decreasing = T),]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...