使用map()将测试(Jarque-Bera)应用于子组

时间:2018-06-01 15:00:17

标签: r dplyr tidyr purrr

我正在尝试在我的数据集的子组上运行测试(Jarque-Bera)。我正在尝试使用purrr函数map(),但不知怎的,它对我来说失败了。

对于此处的示例,我将使用内置的ChickWeight数据集:

加载一些包:

library(dplyr)
library(ggplot2)
library(tidyr)
library(purrr)
library(tseries)

数据如下所示:

ggplot(ChickWeight, aes(weight, fill = Diet)) +
  geom_histogram() +
  facet_wrap(~Diet)

enter image description here

我现在正尝试在亚组饮食1,2,3和4上使用Jarque-Bera测试。

我知道如何在其中一个组中使用它:

ChickWeight %>% 
  filter(Diet == 1) %>% 
  pull(weight) %>% 
  jarque.bera.test()

返回:

    Jarque Bera Test

data:  .
X-squared = 46.687, df = 2, p-value = 7.278e-11

但是现在,我想为所有小组做这件事。所以我嵌套这样的数据:

nst <- ChickWeight %>% 
  nest(-Diet)

现在我想我可以立即应用purrr map()函数,但有些失败了:

tsts <- nst %>% 
  map(jb = map(data, jarque.bera.test(weight)))

返回:

Error in as_mapper(.f, ...) : argument ".f" is missing, with no default

我也尝试过:

tsts <- nst %>% 
  mutate(jb = map(data, jarque.bera.test(weight)))

然后产生:

Error in mutate_impl(.data, dots) : 
  Evaluation error: object 'weight' not found.

0 个答案:

没有答案