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!