2017-01-26 18 views
0

членов Уважаемые StackOverflow,ggplot, barplot с баром ошибки: два двойных столбцов и одной категорических

У меня есть набор данных, состоящий из следующих действий: один столбец lang, содержащий пять различных языков. два других столбца CAN и INT, содержащие либо (0, 1). Вы можете просмотреть данные here

Я хотел бы построить два бара на один язык, один для CAN== 0, а другой для CAN==1. Ось y должна быть числом строк INT (или INT==1). Я бы хотел, чтобы у этих баров была панель ошибок. Некоторые сообщения предложили использовать melt(), чтобы преобразовать формат в длинный. Однако это не работает, поскольку мои данные непрерывны.

+0

Вы можете проверить эти ссылки HTTP: // StackOverflow. com/вопросы/15064462/r-ggplot2-barplot-and-error-bar https://www.youtube.com/watch?v=N4d-qUTTY44 – aelwan

+0

@AliAlshehri, OK, здесь нет больше отвлекающих факторов. Я обновил свой ответ - надеюсь, это удовлетворит ваши потребности. Кроме того, для будущих вопросов, пожалуйста, ознакомьтесь с рекомендацией о том, как опубликовать воспроизводимый вопрос, а затем помощь будет быстрее и скорее правильной. – user127649

+0

@ пользователь127649 это безупречный. Огромное спасибо. есть одна небольшая проблема, которая является мерой оси у, которую мне трудно интерпретировать в полученном графике. Я изначально хотел, чтобы он представлял подсчеты или (лучший) процент проб. – Aloush87

ответ

1

Update

прошлой ночью я имел взгляд на stat_summary, и, возможно, он работает, но я не мог этого сделать. Поэтому я все еще думаю, что geom_errorbar - это путь, как было предложено.

Во-первых, чтобы вычислить CI, я написал функцию. Там может быть один встроенный, но я этого не знаю.

BinCI <- function(x) { 
    p <- mean(x) 
    s <- sqrt(p * (1 - p)/length(x)) 
    i <- s * 2 
    i 
} 

Во-вторых манипуляция данных:

df2 <- unite(df, uLang, c(Lang, CAN), remove = FALSE) %>% # Create the groups 
    group_by(Lang, uLang) %>% 
    summarize(prop = mean(INT), ci = BinCI(INT)) # Calculate the mean and CI using the `BinCI` function 


Lang uLang  prop   ci 
Ar Ar_0 0.07200000 0.04623972 
Ar Ar_1 0.44406780 0.05785682 
Kic Kic_0 0.16000000 0.06558048 
Kic Kic_1 0.44745763 0.05789989 
Sp Sp_0 0.04968944 0.03425168 
Sp Sp_1 0.24390244 0.04742311 
Yuc Yuc_0 0.16800000 0.06687923 
Yuc Yuc_1 0.40780142 0.05852797 
Zap Zap_0 0.15151515 0.06241559 
Zap Zap_1 0.26785714 0.04831810 

В-третьих, сюжет:

ggplot(df2, aes(uLang, prop, fill = Lang)) + 
    geom_col() + 
    geom_errorbar(aes(ymin = prop - ci, ymax = prop + ci), width = 0.3) + 
    guides(fill = FALSE) 

enter image description here

+0

Спасибо @ user127649. это именно то, что я искал. Теперь я хотел бы добавить бары ошибок? – Aloush87

+1

Привет, @ AliAlshehri, я не знаю, какие ошибки вам нужны? Если вы можете рассчитать нужный тип и поместить их в фреймворк данных, вы можете добавить их, используя этот 'geom_errorbar (aes (ymin =?, Ymax =?), Width = 0.2) '. К сожалению, я закончил сегодня вечером, но я вернусь завтра вечером – user127649

+0

Спасибо. Вот что я искал в SPSS [https://docs.google.com/document/d/1mBmueQ07fTda6ev_6hc48gMGu1AJOE7kvIjmNITipIE/edit]. – Aloush87