У меня есть фрейм данных с 4 группами (определяется категориями «a» и «b» в столбце 1 и категориями «X» и «Y» в столбце 2). Я хочу ранжировать атрибуты в столбце 3 по их значениям в столбце 4, но конкретно в группах в столбцах 1 и 2 (AX, AY, BX, BY).
Как я могу go из этого :
col1 col2 col3 col4
a X pat 1
b Y dog 2
b X leg 3
a X hog 4
b Y egg 5
a Y log 6
b X map 7
b Y ice 8
b X mat 9
a Y sat 10
к этому?
col1 col2 col3 col4
a X hog 4
a X pat 1
a Y sat 10
a Y log 6
b X mat 9
b X map 7
b X leg 3
b Y ice 8
b Y egg 5
b Y dog 2
(пример кода ввода ниже)
col1 <- c('a','b','b','a','b','a','b','b','b','a')
col2 <- c('X','Y','X','X','Y','Y','X','Y','X','Y')
col3 <- c('pat','dog','leg','hog','egg','log','map','ice','mat','sat')
col4 <- c(1,2,3,4,5,6,7,8,9,10)
df <- data.frame(col1,col2,col3,col4)
colA <- c('a','a','a','a','b','b','b','b','b','b')
colB <- c('X','X','Y','Y','X','X','X','Y','Y','Y')
colC <- c('hog','pat','sat','log','mat','map','leg','ice','egg','dog')
colD <- c(4,1,10,6,9,7,3,8,5,2)
df1 <- data.frame(colA,colB,colC,colD)
Я попробовал следующее, но это дает случайное расположение, которое имеет ни одна из нужных мне структур ранжирования внутри групп:
df %>% group_by(col1, col2) %>% arrange(desc(col4))
df %>% group_by(col1) %>% arrange(col1) %>% group_by(col2) %>% arrange(col2)
правильно сортирует фрейм данных по первым двум столбцам, но я не могу в дальнейшем упорядочить его по col4.