Такая задача часто возникает в анализе данных. Давайте посмотрим ее решение на примере Toy example
Создаем данные
df = data.frame(a = sample(c('a', 'b', 'c', 'd'), 1000, replace = TRUE),
b = sample(c('x', 'y', 'zizuzi'), 1000, replace = TRUE),
c = rnorm(1000))
Загружаем необходимые библиотеки
library(dplyr) # преобразование данных library(ggplot2) # визуализация library(scales) # на диаграмме значения преобразовывает в %Далее собственно преобразование