2017-03-08 174 views
1

我是R的一个非常基本的用户,所以我为此问题的简单性或者如果公式缺乏提前道歉。将t值和置信区间添加到R中的barplot中

我有一个大型的数据集,我有一个连续的数值变量和两个因子,每个有两个级别。

这是(或多或少)我的数据的基础上产生的/人工的数据的重建:

wordhigh.mu <- -2 
    wordlow.mu <- -2.5 
    pswordhigh.mu <- -1.5 
    pswordlow.mu <- -1.5 
    sigma <- 0.3 
wordshigh <- rnorm(50,mean = wordhigh.mu,sd=sigma) 
wordslow <- rnorm(50,mean = wordlow.mu,sd=sigma) 
pswordshigh <- rnorm(50,mean = pswordhigh.mu,sd=sigma) 
pswordslow <- rnorm(50,mean = pswordlow.mu,sd=sigma) 
value <- c(wordshigh,wordslow,pswordshigh,pswordslow) 
LexicalitySample <- c(rep("Word",100),rep("Pseudoword",100)) 
FrequencySample <- c(rep("High",50),rep("Low",50),rep("High",50),rep("Low",50)) 
new.table <- data.frame(ErpMinAv=value,Lexicality=LexicalitySample,Frequency=FrequencySample) 

我设法使用ggplot绘制我的数据:

ExampleBarPlot <- ggplot(new.table,aes(Lexicality,ErpMinAv,fill=Frequency)) + geom_bar(stat="identity",position="dodge") + xlab("Lexicality") + ylab("Microvolts") + labs(title = "Frequency effect for singular nouns and pseudoword controls") + scale_y_continuous("Microvolts",breaks = round(seq(0, -20, by = -0.5),1)) + guides(fill=guide_legend(title="Frequency"))+ scale_colour_manual(values = c("blue","red")) 

情节看起来像这样的:

Plot using simulated data

我想这样做ñ ow是表明pseudowords之间的频率差异不显着,但在词语之间是显着的。为此,有意义统计(我的情况下t值)以及置信区间会很好。我知道如何计算这些,但我不知道如何将它们添加到barplot中。

我已经在互联网上广泛地看过,但我找不到一个导致我想看到的例子。

非常感谢所有帮助。

回答

3

我打算假设你想要的手段和置信区间。

目前您正在绘制总和,因为您拥有堆叠的条形图。我们可以看到,添加边框颜色时:

enter image description here

我们可以使用stat_summary()计算手段,引导置信区间:

ggplot(new.table, aes(Lexicality,ErpMinAv,fill=Frequency)) + 
    stat_summary(geom = 'bar', fun.y = mean, position = position_dodge(0.9)) + 
    stat_summary(geom = 'errorbar', fun.data = mean_cl_boot, position = position_dodge(0.9), 
       width = 0.5) + 
    scale_y_continuous("Microvolts",breaks = round(seq(0, -20, by = -0.5),1)) 

enter image description here

+0

感谢您的答复,并向我介绍stat_summary。很有用! – HernanLG