使用mtcars数据集(ggplot2)我做了
library(ggplot2)
plot(mtcars$mpg, mtcars$qsec)
现在我想在不同的点计算sd但是使用windows。因此,要在10到15,15到20,20到25之间的间隔内获得sd估计,依此类推。 Afterwars我想在每个窗口中显示差异作为错误栏。
答案 0 :(得分: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)
这会产生: