У меня есть data.frame с 13 строками и 18 столбцами.Цель состоит в том, чтобы создать percentage bar
по строкам.
Из документации форматируемой таблицы процентная линейка может не поддерживаться прямо из коробки.
MRE:
Пустышка data.frame
выглядит следующим образом:
frame <- data.frame(replicate(18,sample(0:1,13,rep=TRUE)))
#load library
library(formattable)
Следующая строка создает процентные бары для первой строки:
formattable(
frame, list(area(1, 1:18) ~ color_bar("lightgray", function(col) col/sum(col))))
Следующее создает процентные бары для всех строк, но он жестко запрограммирован:
formattable(
frame, list(area(1, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(2, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(3, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(4, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(5, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(6, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(7, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(8, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(9, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(10, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(11, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(12, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)),
area(13, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col)))
) #works per row, not scalable
Идея состоит в том, чтобы создать диаграмму выше, динамически (для n переменных строк)
Вещи, которые я пытался и не работал, включают:
formattable(
frame, list(area(1:13, 1:ncol(frame)) ~ color_bar("lightgray", function(col) col/sum(col))))
Этот не работает, потому что он создает полную область, поэтому проценты основаны на полном кадре.