I'm hoping to sort a dataframe by it's individual groups based on it's individual column value. A sample dataframe is as follows:
| Group | Answer | Frequency | 
|---|---|---|
| A | Apple | 12 | 
| B | Apple | 8 | 
| A | Orange | 11 | 
| B | Orange | 3 | 
| A | Banana | 20 | 
| B | Banana | 5 | 
| A | Jackfruit | 10 | 
| B | Jackfruit | 9 | 
| A | Pineapple | 5 | 
| B | Pineapple | 3 | 
| A | Pear | 20 | 
| B | Pear | 20 | 
df_sample = structure(list(Group = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 
                                               2L, 1L, 2L, 1L, 2L), .Label = c("A", "B"), class = "factor"), 
                           Answer = structure(c(1L, 1L, 4L, 4L, 2L, 2L, 3L, 3L, 6L, 
                                                6L, 5L, 5L), .Label = c("Apple", "Banana", "Jackfruit", "Orange", 
                                                                        "Pear", "Pineapple"), class = "factor"), Frequency = c(12L, 
                           8L, 11L, 3L, 20L, 5L, 10L, 9L, 5L, 3L, 20L, 20L)), class = "data.frame", row.names = c(NA, 
                           -12L))
I'm hoping to sort them based on the Group column and to output the top 3 answers based on the frequency for each group. The outcome should be the following table.
| Group | Answer (top 3) | Frequency | 
|---|---|---|
| A | Pear | 20 | 
| A | Banana | 20 | 
| A | Apple | 12 | 
| B | Pear | 20 | 
| B | Jackfruit | 9 | 
| B | Apple | 8 | 
If I'm not wrong the code should be something alone the line of but I'm not sure how to complete it
df_sample %>% group_by(Group) %>% order(Frequency, decreasing = T)
Thanks!
