如何在ubuntu中安装的R中打印循环中的变量?
大约3年前,这里也曾提出过类似的问题。与我运行for循环时的问题类似,它在屏幕上显示每个输出变量,而不清除前一个变量如何在ubuntu中安装的R中打印循环中的变量?,r,ubuntu,R,Ubuntu,大约3年前,这里也曾提出过类似的问题。与我运行for循环时的问题类似,它在屏幕上显示每个输出变量,而不清除前一个变量 a=matrix(c(1,8,2,5),nrow=2) for(i in 1:4){ print(a*i) } [,1] [,2] [1,] 1 2 [2,] 8 5 [,1] [,2] [1,] 2 4 [2,] 16 10 [,1] [,2] [1,] 3 6 [2,] 24 1
a=matrix(c(1,8,2,5),nrow=2)
for(i in 1:4){
print(a*i)
}
[,1] [,2]
[1,] 1 2
[2,] 8 5
[,1] [,2]
[1,] 2 4
[2,] 16 10
[,1] [,2]
[1,] 3 6
[2,] 24 15
[,1] [,2]
[1,] 4 8
[2,] 32 20
为简单起见,对于低维矩阵,我只使用了四次迭代,但我的real For循环有1000多次迭代,并且有一个大维矩阵,这使得输出丑陋且内存密集
我试着回答了上面的问题
for(i in 1:10){
Sys.sleep(0.1)
print(i)
flush.console()
}
但是它没有改变我的R输出(安装在ubuntu中)中的任何内容,它仍然打印出所有变量
注意:我不是在寻找一个进度条,可能是系统('clear'),正如在对的回答中所建议的那样。例如:
for(i in 1:10){
system('clear')
print(matrix(rnorm(9), nc = 3))
Sys.sleep(0.5)
}
这是你想要的吗?我在Debian(Ubuntu的妈妈)上运行了它,它似乎完成了关键任务
for(ii in 1:10) {
Sys.sleep(1)
cat(paste0('\r',ii))
}
它也可以在批处理模式下工作,如果你喜欢的话。我将类似的内容放入一个文件中,并将其作为R CMD批处理运行--不保存myfile.R
for(ii in 1:10) {
Sys.sleep(1)
cat(paste0('\r',ii), file='/dev/tty')
}
诀窍:
- \r返回到行的开头。在某些环境中,您可能需要将其写为“\\r”,但我在Debian从控制台运行r时没有发现这一点
- 在批处理模式下,写入/dev/tty,而不是/dev/console
希望有帮助。您可能应该保存它们,而不是打印它们。另外,您可能应该使用
lappy
,而不是for
。