首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用poisson.test与dplyr

使用poisson.test与dplyr
EN

Stack Overflow用户
提问于 2019-10-10 18:00:15
回答 1查看 318关注 0票数 1

我想对泰伯的每一行进行泊松测试。但是,变异失败,因为poisson.test似乎是为数字而不是列设计的。什么是最好的解决办法?目前,我唯一能做到的就是一个明确的for循环.

代码语言:javascript
复制
df <- tribble(
~count, ~time,
5, 10,
4, 7,
8, 10)

# Fails
df %>% mutate(rate = poisson.test(count, T = time)
# Error in poisson.test(remove_count, T = FHs) : 
#   the case k > 2 is unimplemented
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-10 18:02:28

由于我们希望在每一行上应用,一个选项是map2,其中它接受'count‘、'time’的每个元素并执行poisson.test

代码语言:javascript
复制
library(dplyr)
library(purrr)
df %>%
   mutate(rate = map2(count, time, poisson.test))

或者如果我们不想加载另一个包(purrr),那么这可以用rowwise来完成

代码语言:javascript
复制
df %>% 
   rowwise %>%
   mutate(rate = list(poisson.test(count, time))) 

这将使测试输出作为list列。如果我们对提取estimate感兴趣

代码语言:javascript
复制
df %>%
   mutate(rate = map2_dbl(count, time, ~poisson.test(.x, .y)$estimate))
# A tibble: 3 x 3
#  count  time  rate
#  <dbl> <dbl> <dbl>
#1     5    10 0.5  
#2     4     7 0.571
#3     8    10 0.8  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58328656

复制
相关文章

相似问题

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