gpt4 book ai didi

r - 使用stat_summary的标准误差线

转载 作者:行者123 更新时间:2023-12-03 11:47:36 25 4
gpt4 key购买 nike

以下代码使用Hmisc,ddply和ggplot生成具有标准误差线的条形图:

means_se <- ddply(mtcars,.(cyl),
function(df) smean.sdl(df$qsec,mult=sqrt(length(df$qsec))^-1))
colnames(means_se) <- c("cyl","mean","lower","upper")
ggplot(means_se,aes(cyl,mean,ymax=upper,ymin=lower,group=1)) +
geom_bar(stat="identity") +
geom_errorbar()

但是,使用诸如mean_sdl之类的辅助函数来实现上述功能似乎要好得多。例如,以下代码生成带有95%CI误差线的图:
ggplot(mtcars, aes(cyl, qsec)) + 
stat_summary(fun.y = mean, geom = "bar") +
stat_summary(fun.data = mean_sdl, geom = "errorbar")

我的问题是如何对标准错误栏使用stat_summary实现。问题是要计算SE,您需要每个条件的观察次数,并且必须在mean_sdl的乘数中进行访问。

如何在ggplot中访问此信息?是否有一个简洁的非hacky解决方案?

最佳答案

好吧,我无法告诉您如何按组获取乘数stat_summary

但是,您的目标似乎是要绘制表示均值和标准差的误差线,这些均值和误差线表示ggplot中的平均值,而不在绘制前汇总数据集。

ggplot2中有一个mean_se函数,我们可以使用它代替Hmisc的mean_cl_normalmean_se函数的默认乘数为1,因此,如果我们要使用标准误差线,则不需要传递任何其他参数。

ggplot(mtcars, aes(cyl, qsec)) + 
stat_summary(fun.y = mean, geom = "bar") +
stat_summary(fun.data = mean_se, geom = "errorbar")

如果要使用 mean_cl_normal中的 Hmisc函数,则必须将乘数更改为1,以便从平均值中得到一个标准误差。 mult参数是 mean_cl_normal的参数。您需要传递给正在使用的摘要函数的参数需要作为 fun.args参数的列表给出:
ggplot(mtcars, aes(cyl, qsec)) + 
stat_summary(fun.y = mean, geom = "bar") +
stat_summary(fun.data = mean_cl_normal, geom = "errorbar", fun.args = list(mult = 1))

在ggplot2的2.0之前的版本中,可以直接传递参数:
ggplot(mtcars, aes(cyl, qsec)) + 
stat_summary(fun.y = mean, geom = "bar") +
stat_summary(fun.data = mean_cl_normal, geom = "errorbar", mult = 1)

关于r - 使用stat_summary的标准误差线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19258460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com