0

我一直在尝试将相同的循环用于不同的目的,它总是显示编程系列的最后一行。我需要选择每六列,从第一列开始,从 25(到 30)完成

for(i in seq(1,25,by=6)) {
  print(describe(scores[,c(i:i+5)])) 
}

显示的信息只对应25:30的栏目;它不打印循环中的每个系列可能有什么问题?谢谢!

编辑

仍然有一个循环不起作用,似乎有其他原因:

P <- array(0, dim=c(1032,7,5))
for(i in seq(1,25,by=6)) {   
  for (j in 1:5) {
    P[,1:6,j] <- scores[,c(i:(i+5))] 
    P[,7,j] <- scores[,j+30]
  }
}

显示的错误信息:Incorrect number of subscripts。也试过flush.console()了,没有成功。

4

2 回答 2

0

此答案不会涉及循环问题,但如果您只想要那些特定列describe的(来自Hmisc-package?)的输出,则可能会有所帮助:

一些示例数据:

scores <- matrix(rep(sample(1:10,10),25),nrow=10,ncol=25)
dimnames(scores) <- list(1:10,LETTERS[1:25])

library(Hmisc)
describe(scores[,seq(1,25,6)])

这是有效的,因为for-loop 已经内置到Hmisc:::describe函数中。

于 2013-09-23T08:12:42.027 回答
0

如果要循环显示所有打印命令,则必须添加

   flush.console()

在打印命令之后的循环内:

for(i in seq(1,25,by=6)) {
   print( describe( scores[,i:(i+5)] ) ) 
   flush.console()
}

编辑

好像这个突击队

P[,1:6,j] <- scores[,c(i:(i+5))]

将 P 转换为列表。这有帮助吗?

于 2013-09-23T07:47:58.920 回答