我一直在尝试将同一个循环用于不同的目的,它总是显示编程系列的最后一行。我需要每六列选择一次,从第一列开始,到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()
但没有成功。
这个答案不会涉及循环问题,但如果您只想从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
循环已经内置到Hmisc:::describe
函数中。
如果要循环显示所有打印命令,则必须添加
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 转换为列表。这有帮助吗?