首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算成组多个参数的置信区间

计算成组多个参数的置信区间
EN

Stack Overflow用户
提问于 2020-12-03 21:47:14
回答 2查看 46关注 0票数 0

这是一个计算CV置信区间的例子,用EnvStats软件包计算,用bootstrap with slipper软件包计算。

代码语言:javascript
复制
require(EnvStats) 
require(devtools)
devtools::install_github('jtleek/slipper')
require(slipper)

iris %>%
  slipper_ci(EnvStats::cv(Sepal.Length),B=100, lower=0.025, upper=0.975)

现在我需要使用group_by和几个像这样的变量进行相同的计算。但它不起作用。

代码语言:javascript
复制
cv_ic <- iris %>% 
  group_by(Species) %>%
  summarise_at(vars(Sepal.Length,Sepal.Width,Petal.Length)), slipper_ci_f(EnvStats::cv(vars(Sepal.Length,Sepal.Width,Petal.Length)))
EN

回答 2

Stack Overflow用户

发布于 2020-12-03 23:37:47

slipper_ci()的第一个参数需要是一个数据帧,它不能在summarise()中获取它。下面的方法似乎是可行的:

代码语言:javascript
复制
library(tidyverse)

cv_ic <-
  iris %>%
  group_by(Species) %>%
  summarise(across(everything(),
                  ~ slipper_ci(as.data.frame(.x),
                                cv(.x),
                                B = 100,
                                lower = 0.025,
                                upper = 0.975)),
            .groups = "keep"
  )
票数 0
EN

Stack Overflow用户

发布于 2020-12-03 23:39:45

我无法安装slipper包。

我不认为您必须将vars(Sepal.Length,Sepal.Width,Petal.Length)传递给函数cv

一个purrr风格的函数应该很好,比如

代码语言:javascript
复制
cv_ic <- iris %>% 
  group_by(Species) %>%
  summarise_at(vars(Sepal.Length,Sepal.Width,Petal.Length)), ~slipper_ci_f(EnvStats::cv(.x)))

我还建议您使用旨在替换*_at/ifacross函数。

代码语言:javascript
复制
cv_ic <- iris %>% 
  group_by(Species) %>%
  summarise(across(c(Sepal.Length,Sepal.Width,Petal.Length), ~slipper_ci_f(EnvStats::cv(.x))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65127242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档