我正在尝试在我的数据集的子组上运行测试(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)
我现在正尝试在亚组饮食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.