2016-10-28 4 views
0

Я новичок в R, но я просмотрел множество руководств, и я не могу найти решение. У меня есть dataframe так:Барлочки с группами в R

FECRT <- 
structure(list(Farm = structure(c(1L, 1L, 1L, 2L, 2L, 3L, 3L, 
3L, 4L, 4L, 5L, 5L, 5L, 6L, 6L, 6L, 7L, 7L, 7L), .Label = c("5", 
"11", "15", "20", "24", "36", "47"), class = "factor"), Drug = 
structure(c(3L, 
2L, 1L, 3L, 2L, 2L, 4L, 1L, 3L, 4L, 2L, 4L, 1L, 3L, 4L, 1L, 3L, 
4L, 1L), .Label = c("Closantel", "Febendazole", "Ivermectin", 
"Moxidectin"), class = "factor"), Reduction = structure(c(10L, 
2L, 1L, 15L, 12L, 11L, 15L, 9L, 5L, 16L, 8L, 14L, 4L, 7L, 16L, 
3L, 6L, 16L, 13L), .Label = c("-64", "-6", "7", "17", "46", "49", 
"51", "53", "55", "64", "67", "82", "89", "90", "99", "100"), class = 
"factor")), .Names = c("Farm", 
"Drug", "Reduction"), row.names = c(NA, -19L), class = "data.frame") 

Где в ферме У меня 7 ферм, каждая ферма имеет один или несколько методов лечения одного заболевания и для каждого лечения у меня есть один результат для уменьшения (% в исходе заболевания). Я хочу, чтобы штрих-код показывал ось Y Уменьшение (%), а ось X - идентификатор фермы. Я получил это, набрав:

barplot(FECRT$"Reduction", name = Farmgroup, main="% EPG Reduction after treatment - FECRT Farms", xlab = "Farm ID", ylab = "EPG Percentual Reduction") 

Однако, я хочу, чтобы сгруппировать по оси X на ферме, так как каждая ферма может иметь один или три различные методы лечения. Я попробовал таблицу функций, однако он создает таблицу с количеством наблюдений, а затем, когда я ее рисую, ось Y становится числом наблюдений (0-3).

Я пробовал с ggplot2 используя aes и dyplr используя grouping_by но также не работает.

+0

Ферма = 5,5,5,11,11,15,15,15,20,20,24,24,24,36,36,36,47,47,47 Лечение IV, FB, CL, IV, FB, FB, MO, CL, IV, MO, FB, MO, CL, IV, MO, CL, IV, MO, CL Уменьшение 64, -6, -64,99,82,67, 99,55,46,100,53,90,17,51,100,7,49,100,89 –

+0

Я попытался улучшить вопрос, но было неясно, каков должен быть комментарий. Вы не должны использовать комментарии для внесения изменений в вопрос. Используйте кнопку [edit]. Не нужно, чтобы '<' -character был html и не будет отображаться в комментариях, если вы не избежите его. –

+0

Извините - и спасибо. –

ответ

0

В ggplot важно изменить аргумент stat на «identity», иначе ggplot принимает счет из-за его значения по умолчанию.

# Change Reduction from factor to numeric 
    FECRT$Reduction <- as.numeric(as.character(FECRT$Reduction)) 

    ggplot(FECRT, aes(x = Farm, y = Reduction, fill = Drug))+ 
     geom_bar(stat="identity", position = "dodge") 

Я установил позицию для уклонения, потому что уложенные гистограммы плохо обрабатывают отрицательные числа.

Приветствия

+0

Большое вам спасибо! Полностью сработал! –

Смежные вопросы