簡體   English   中英

將函數應用於多列

[英]Applying a function to multiple columns

我想將一個函數應用於多個列。 我在數據幀的數據data結構如下:

col1 col2 col3
x    x    x
x    x    x
x    x    x

特別是,我想對每列的時間序列應用ADF測試。

我認為這樣可能有效:

f <- function(x) ur.df(x, type = "none", lags = 10, selectlags = "AIC"))
sapply(data, f)

但是,似乎在處理列的“變量”時存在問題。

如何正確完成?

更新:使用它來創建三個具有隨機值的列:

data = data.frame(matrix(rnorm(30), nrow=10))

據我所知,您的代碼有兩個問題:

1)在函數定義中,括號太多了; 它應該是:

f <- function(x) ur.df(x, type = "none", lags = 10, selectlags = "AIC")

2)對於給定的數據集維度,滯后次數太高。 以下工作(分別注意不同數據集的不同維度和滯后):

library(urca)
data <- data.frame(matrix(rnorm(300), nrow=100))
f <- function(x) ur.df(x, type = "none", lags = 10, selectlags = "AIC")
sapply(data,f)

data2 = data.frame(matrix(rnorm(30), nrow=10))
f2 <- function(x) ur.df(x, type = "none", lags = 3, selectlags = "AIC")
sapply(data2,f2)

這將為您提供以下輸出(由於我沒有為rnorm設置種子,所以數量當然可以不同):

$ X1增強的Dickey-Fuller測試單位根/協整測試測試統計量的值為:-6.0255

$ X2增強的Dickey-Fuller測試單位根/協整測試測試統計量的值為:-7.164

$ X3增強Dickey-Fuller測試單位根/協整測試測試統計量的值為:-5.0921

$ X1增強Dickey-Fuller測試單位根/協整測試測試統計量的值是:-1.2124

$ X2增強的Dickey-Fuller測試單位根/協整測試測試統計量的值為:-0.8715

$ X3增強的Dickey-Fuller測試單位根/協整測試測試統計量的值是:-0.6598

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM