2017-09-04 5 views
1

J'utilise script suivant pour afficher les résultats de corrélation série:R: Sortie de la boucle de formatage - sans noms de colonne répétés?

serial = function(x,y,z){ 
    for (i in 1:4) { 
    table_serial <- data.frame(i, 
    serial.test(VAR(cbind(x,y),p=i,type="const"),lags.pt=4, type=z)$serial$statistic[[1]],     
    serial.test(VAR(cbind(x,y),p=i,type="const"),lags.pt=4, type=z)$serial$p.value[[1]], digits=3)) 
    colnames(output) <- c("Lag", "Chi", "p") 
    print(data.frame(serial)) 
    } 
} 

lags.pt=4 est le nombre de retards que je suis testé, à savoir que les données sont des données trimestrielles. La fonction

serial(data[1],data[2], "PT.asymptotic") 

retours

Lag Chi p 
1 1 41.46 0.581 
    Lag Chi p 
1 2 50.032 0.133 
    Lag Chi p 
1 3 40.097 0.293 
    Lag Chi p 
1 4 40.582 0.142 

Est-il possible d'éviter une nouvelle impression des titres des colonnes et des lignes? Ma sortie désirée:

Lag Chi p 
1 41.46 0.581 
2 50.032 0.133 
3 40.097 0.293 
4 40.582 0.142 

Merci pour votre aide!

Répondre

1

Ce qui suit fait ce que vous voulez.

serial = function(x,y,z){ 
    table_serial <- data.frame() 
    for (i in 1:4) { 
     s1 <- serial.test(VAR(cbind(x,y), p=i, type="const"), lags.pt=4, type=z)$serial$statistic[[1]] 
     s2 <- serial.test(VAR(cbind(x,y), p=i, type="const"), lags.pt=4, type=z)$serial$p.value[[1]] 
     table_serial <- rbind(table_serial, c(i, s1, s2)) 
    } 
    colnames(table_serial) <- c("Lag", "Chi", "p") 
    table_serial 
} 

# test it 
set.seed(1234) # make it reproducible 
serial(rnorm(100), rnorm(100), "BG") 
    Lag  Chi   p 
1 1 13.76826 0.8420485 
2 2 27.77865 0.1147436 
3 3 17.09634 0.6467093 
4 4 13.58514 0.8508920