Sal*_*dor 1 r confidence-interval dplyr
在这里查看答案 如何估计自举间隔?ggplot2列表上也提出了这个问题。
library(dplyr)
mtcars %>%
group_by(vs) %>%
summarise(mean.mpg = mean(mpg, na.rm = TRUE),
sd.mpg = sd(mpg, na.rm = TRUE),
n.mpg = n()) %>%
mutate(se.mpg = sd.mpg / sqrt(n.mpg),
lower.ci.mpg = mean.mpg - qt(1 - (0.05 / 2), n.mpg - 1) * se.mpg,
upper.ci.mpg = mean.mpg + qt(1 - (0.05 / 2), n.mpg - 1) * se.mpg)
Run Code Online (Sandbox Code Playgroud)
该Hmisc软件包具有smean.cl.boot轻松计算简单的引导置信区间的功能。最困难的部分(IMO)将结果的多个输出(函数返回一个3元素的数值向量)合并到dplyr工作流中(请参阅dplyr :: mutate以添加多个值)
library(Hmisc) ## optional if using Hmisc:: below
library(dplyr)
mtcars %>%
group_by(vs) %>%
do(data.frame(rbind(Hmisc::smean.cl.boot(.$mpg))))
Run Code Online (Sandbox Code Playgroud)
新的列标只是Mean,Lower,Upper,但额外的setNames调用将解决这个问题?
如果做很多事情,
bootf <- function(x,var="mpg") {
newstuff <- rbind(Hmisc::smean.cl.boot(x[[var]])) %>%
data.frame %>%
setNames(paste(var,c("mean","lwr","upr"),sep="_"))
return(newstuff)
}
mtcars %>% group_by(vs) %>% do(bootf(.))
mtcars %>% group_by(cyl) %>% do(bootf(.))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1509 次 |
| 最近记录: |