首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中使用lapply从ADF测试中提取Pvalue

在R中使用lapply从ADF测试中提取Pvalue
EN

Stack Overflow用户
提问于 2018-08-28 06:31:49
回答 1查看 308关注 0票数 0

这是我的清单:

代码语言:javascript
复制
mylist=dput(mylist)
list(list(c(30, 50, 35, 25, 45), c(40, 35, 35, 50, 45), c(40, 
20, 40, 50, 25), c(35, 45, 45, 45, 40), c(20, 30, 50, 45, 20), 
    c(40, 40, 50, 30, 40)), list(c(50, 50, 25, 40, 45, 40, 35, 
40, 45, 20), c(40, 35, 40, 40, 45, 30, 20, 50, 35, 25), c(20, 
30, 50, 35, 45, 40, 25, 50, 35, 50), c(20, 35, 30, 25, 40, 30, 
50, 20, 25, 35), c(40, 25, 25, 20, 50, 30, 50, 40, 35, 35), c(50, 
20, 45, 35, 50, 45, 30, 45, 35, 50)), list(c(45, 50, 25, 25, 
30, 25, 35, 35, 35, 30, 50, 50, 30, 30, 20), c(40, 20, 35, 35, 
50, 20, 25, 30, 35, 20, 40, 20, 45, 30, 20), c(50, 20, 25, 35, 
35, 30, 50, 25, 40, 35, 45, 45, 35, 45, 25), c(50, 50, 25, 35, 
25, 35, 20, 25, 45, 40, 35, 40, 50, 40, 30), c(50, 25, 20, 30, 
40, 45, 40, 50, 35, 40, 30, 45, 35, 50, 40), c(35, 50, 35, 45, 
25, 40, 50, 40, 50, 50, 50, 50, 35, 35, 40)), list(c(50, 50, 
50, 40, 20, 25, 50, 40, 50, 50, 45, 40, 30, 50, 35, 45, 50, 30, 
35, 45), c(45, 20, 25, 20, 25, 30, 20, 30, 45, 25, 50, 30, 30, 
25, 50, 45, 20, 45, 45, 50), c(20, 40, 50, 25, 40, 45, 25, 30, 
20, 20, 35, 45, 20, 40, 50, 45, 40, 40, 45, 35), c(40, 40, 20, 
25, 50, 50, 35, 45, 50, 45, 50, 35, 30, 40, 35, 45, 25, 45, 45, 
25), c(20, 25, 35, 45, 35, 40, 40, 35, 35, 40, 30, 30, 40, 50, 
25, 40, 30, 25, 20, 40)), list(c(35, 25, 45, 20, 25, 30, 30, 
35, 30, 40, 30, 20, 20, 30, 45, 40, 35, 35, 35, 35, 25, 45, 35, 
20, 50), c(50, 35, 30, 30, 35, 45, 45, 50, 25, 25, 40, 25, 50, 
45, 25, 30, 30, 25, 45, 45, 30, 20, 50, 30, 30), c(35, 40, 50, 
25, 40, 45, 30, 25, 50, 25, 35, 50, 50, 50, 25, 50, 20, 50, 40, 
25, 25, 35, 20, 20, 50), c(40, 35, 35, 40, 50, 35, 25, 40, 25, 
25, 30, 45, 50, 35, 20, 50, 20, 20, 45, 50, 40, 30, 35, 50, 45
), c(40, 25, 50, 50, 20, 50, 25, 50, 40, 30, 30, 50, 45, 45, 
40, 45, 20, 20, 45, 35, 45, 50, 40, 40, 35), c(40, 45, 35, 35, 
30, 45, 40, 40, 20, 50, 50, 45, 40, 40, 45, 45, 35, 40, 20, 30, 
35, 45, 30, 50, 25)))

在每个mylist[[1]][[1]],mylist[[1]][[2]],mylist[[3]][[1]],mylist[[1]][[4]],mylist[[1]][[5]],mylist[[1]][[6]] (直到mylist[[5]][[6]]位置)位置,我想运行一个ADF测试,并使用Lapply函数提取它的p值。

为此,我创建了一个结果列表,并运行以下代码:

代码语言:javascript
复制
resultlist<-vector(mode = "list", 5)
# library(  _enter_name_of_package )
resultlist <- lapply(mylist, 
                function(x) 
                lapply(x, function(y) rep(adf.test(mylist)$p.value(y), length(y))))

它不起作用。这将是维护lapply结构代码的基本方法。

我可以通过这样做来提取平均值(即使给我重复的值,这也不是问题)

代码语言:javascript
复制
resultlist <- lapply(mylist, function(x) lapply(x, function(y) rep(mean(y), length(y))))

记住这段代码后,我想运行ADF测试并提取pvalue。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-28 06:49:19

通常,如果要将函数(此处为myfun)应用于列表列表(此处为mylist)的每个元素,则执行以下操作:

代码语言:javascript
复制
lapply(mylist, lapply, myfun)

这将返回一个列表结果,您可以使用unlist将其转换为向量。

我不确定您正在为特定的应用程序使用哪个adf.test函数,因为在tseriesaTSA包(可能还有其他包)中都有一个同名的函数。无论如何,解决方案将如下所示:

代码语言:javascript
复制
lapply(mylist, lapply, function(x) adf.test(x)$p.value)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52047763

复制
相关文章

相似问题

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