2014-02-10 44 views
1

使用mtcars數據集(GGPLOT2)平均y值我做計算在Windows

library(ggplot2) 
plot(mtcars$mpg, mtcars$qsec) 

現在我想在不同的點,但使用Windows來計算SD。因此,要在10至15,15至20,20至25等的區間內獲得sd估計值。戰後,我想在每個窗口中顯示差異作爲錯誤欄。

回答

0

下面介紹一種方法。您可以計算您希望作爲數據框中新列的值。然後計算平均值和標準差。每個組的錯誤,然後繪製方法並將錯誤條疊加在上面。

buckets <- c(10,15,20,25,30,35) 
mtcars$mpg_bucket <- cut(mtcars$mpg, buckets) #create a new column 

#group by bucket and calculate mean qsec 
mean_qsec <- tapply(mtcars$qsec, mtcars$mpg_bucket, mean) 

#se for bucket = sd/ sqrt(count) 
stderr <- tapply(mtcars$qsec, mtcars$mpg_bucket, function(x){sd(x)/sqrt(length(x))}) 

# Define the top and bottom of the errorbars 
limits <- aes(ymax = mean_qsec + stderr, ymin= mean_qsec - stderr) 

df <- data.frame(mean_qsec, stderr) 
df$buckets <- row.names(df) 
ggplot(df, aes(x=buckets, y=mean_qsec)) + geom_bar(stat="identity", fill="gray70") + 
    geom_errorbar(limits,width=0.25) 

這產生: enter image description here