Звучит так, будто вы ищете гистограмму. Было бы легче дать вам код, если бы вы дали образец ваших фактических данных, однако, фактический код будет выглядеть примерно так, используя ggplot2
:
require(tidyverse)
df<-df %>% gather(test, value, 2:4)
ggplot(df,aes(x=test,fill=value)) +
geom_bar(position="dodge")
Обратите внимание, что ключ в том, чтобы преобразовать ваши данные в "длинный" формат - поэтому вместо одного столбца для каждого из ваших тестов вы создаете (с gather
, или cast
, или набором похожих функций) два столбца - один для имени теста и один для значения.
Например, давайте создадим несколько случайных данных:
df<-data.frame(student=c(LETTERS[1:10]), Ass_1_hearingE=sample(c("not tested",
"not fulfilled", "partly fulfilled", "fulfilled"),10,replace=TRUE),
Ass_1_hearingA=sample(c("not tested", "not fulfilled", "partly
fulfilled", "fulfilled"),10,replace=TRUE), Ass_1_hearingC =
sample(c("not tested", "not fulfilled", "partly fulfilled",
"fulfilled"),10,replace=TRUE))
Это даст нам следующий результат:
Это то, что вы хотели?
Или, если вы хотите использовать его в виде столбцов, измените dodge
выше на stack
, и вы получите: