My data:
structure(list(LoB = c("C", "C", "C", "A",
"A", "B", "C", "A", "A", "C",
"A", "B", "C", "B", "A", "C", "B",
"A", "B", "C", "A", "B", "B", "A",
"B", "C", "A", "B", "C", "B"), word = c("speed",
"connection", "call", "bt", "reliable", "reliable", "reliable",
"expensive", "cheaper", "uk", "customer", "customer", "customer",
"network", "broadband", "broadband", "signal", "price", "price",
"price", "poor", "poor", "ee", "service", "service", "service",
"excellent", "excellent", "excellent", "coverage"), word_total = c(68L,
46L, 44L, 3138L, 3479L, 906L, 71L, 6096L, 2967L, 39L, 10405L,
1429L, 113L, 676L, 5193L, 73L, 868L, 8763L, 814L, 139L, 4708L,
659L, 530L, 19185L, 2253L, 136L, 7180L, 1227L, 69L, 1453L), word_prop_by_total_feedbacks = c(0.0656370656370656,
0.0444015444015444, 0.0424710424710425, 0.0343378635677237, 0.0380692885124636,
0.101603678367164, 0.0685328185328185, 0.0667060600091918, 0.0324666797977808,
0.0376447876447876, 0.113857702492723, 0.160255691376023, 0.109073359073359,
0.075810250084109, 0.0568248965924759, 0.0704633204633205, 0.0973421554334417,
0.0958899612632132, 0.0912863070539419, 0.134169884169884, 0.0515177379467314,
0.0739037792979702, 0.0594370303913872, 0.209933687873416, 0.252663451833576,
0.131274131274131, 0.0785678331473092, 0.137602332623079, 0.0666023166023166,
0.16294717954469)), class = c("grouped_df", "tbl_df", "tbl",
"data.frame"), row.names = c(NA, -30L), vars = "LoB", drop = TRUE, indices = list(
c(3L, 4L, 7L, 8L, 10L, 14L, 17L, 20L, 23L, 26L), c(5L, 11L,
13L, 16L, 18L, 21L, 22L, 24L, 27L, 29L), c(0L, 1L, 2L, 6L,
9L, 12L, 15L, 19L, 25L, 28L)), group_sizes = c(10L, 10L,
10L), biggest_group_size = 10L, labels = structure(list(LoB = c("A",
"B", "C")), class = "data.frame", row.names = c(NA, -3L
), vars = "LoB", drop = TRUE, .Names = "LoB"), .Names = c("LoB",
"word", "word_total", "word_prop_by_total_feedbacks"))
I am trying to plot using ggplot2
but fct_reorder
and drlib::reorder_within(word, word_total, LoB)
not working and giving me a warning message: Unequal factor levels: coercing to characterbinding character and factor vector, coercing into character vectorbinding character and factor vector, coercing into character vectorbinding character and factor vector, coercing into character vector
Here is the code:
mutate(word = drlib::reorder_within(word, word_total, LoB)) %>%
OR
mutate(word = forcats::fct_reorder(word, word_total)) %>%
ggplot(aes(word, word_prop_by_total_feedbacks, fill = LoB)) +
geom_col() +
# drlib::scale_x_reordered()+
facet_wrap(~ LoB, scales = "free") +
coord_flip()
it is not plotting in descending order. what am I missing?
Update: Was missing ungroup()
before mutate()
. thanks all