首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:格式化循环输出-没有重复的列名?

R:格式化循环输出-没有重复的列名?
EN

Stack Overflow用户
提问于 2017-09-04 15:24:31
回答 1查看 100关注 0票数 1

我使用以下脚本输出序列关联的结果:

代码语言:javascript
运行
复制
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是我测试的滞后数,因为数据是季度数据。功能

代码语言:javascript
运行
复制
serial(data[1],data[2], "PT.asymptotic")

返回

代码语言:javascript
运行
复制
  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

有没有办法避免重新打印列标题和行?我想要的输出:

代码语言:javascript
运行
复制
Lag Chi    p
1   41.46  0.581
2   50.032 0.133
3   40.097 0.293
4   40.582 0.142

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-04 15:57:52

以下是你想做的事。

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46040127

复制
相关文章

相似问题

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