Я пытаюсь отсортировать разные подмножества строк в кадре данных по разным столбцам, в зависимости от значения в другом столбце. Так, например, все строки с данным значением в столбце D должны быть отсортированы по столбцу B, тогда как все строки с другим значением в столбце D должны быть отсортированы по столбцу C. Вот пример фрейма данных:
colA <- sample(LETTERS, 6)
colB <- sample(c(1:100), 6)
colC <- sample(c(101:200), 6)
condition <- rep(c("good", "bad"), each = 1, times = 3)
df <- data.frame(colA, colB, colC, condition)
>df
colA colB colC condition
1 F 44 187 good
2 C 32 179 bad
3 A 93 191 good
4 U 66 146 bad
5 Q 72 156 good
6 O 92 124 bad
Я хотел бы отсортировать этот фрейм данных по colB, если условие «плохое», и по col C, если условие «хорошее», что приводит к
> df_sorted
colA colB colC condition
1 C 32 179 bad
2 U 66 146 bad
3 O 92 124 bad
4 Q 72 156 good
5 F 44 187 good
6 A 93 191 good
До сих пор я создавал отдельные фреймы данных для каждого условия, сортируя их по отдельности, а затем возвращая их вместе с rbind
. Этот подход работает, но довольно утомительно, когда есть много разных условий. Кажется, должен быть более простой способ сделать это, но я не смог найти его. Любая помощь будет наиболее ценной. Спасибо!