2016-06-24 2 views
0

은 가정의 열을 통해 루프 기능 (원래 테이블은 훨씬 더 많은 열이) : http://pastebin.com/igeMTaSBR : 우리는 각각의 변수 이쌍가 서로 테스트해야 우리가 테이블을 다음 가지고 R 스크립트

어떻게 할 수 R에 루프를 작성하여 스크립트에서 함수를 하나 또는 두 개의 행에 적용합니다.

예제 코드 : 하나의 변수의 경우를 들어

library(urca) 
library(lmtest) 

# Load data (See link) 

table = read.csv("test.csv", header = TRUE, sep=",") 
table = data.frame(table) 
table 

# For each column in the table (a1-d2), do 
VARselect(table$column,lag.max = 10,type="both") 

# For each two sequent pairs in the table (a1+a2, b1+b2,c1+c2,d1+d2), do 
grangertest(table$a1, table$a2, order = 1, na.action = na.omit) 
+0

하나의 변수의 경우, 'sapply' 또는'lapply'를 사용하십시오 :'lapply (table, function (i) VARselect (i, lag.max = 10, type = "both"))'. – lmo

답변

1

, 예를 들어 sapply 또는 lapply을 사용하는 경우

myVarSel <- lapply(table, function(i) VARselect(i,lag.max = 10,type="both")) 

을 인접 위치 변수의 당신의 쌍 (컬럼 1, 2 3,4 및 5,6)의 경우 다음과 같이 lapply을 사용할 수 있습니다.

myGtests <- lapply(seq(1, 5, 2), function(i) grangertest(table[[i]], table[[i+1]], order = 1, 
              na.action = na.omit)) 

변수가 다른 방식으로 배열되어있는 경우 에 grep과 같은 도구를 사용하여 변수를 찾을 수 있습니다. lapply에서 추출하십시오.

lapply 함수는 목록을 반환하며 각 요소는 해당 함수의 결과입니다.