[英]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.