【发布时间】:2010-10-01 08:18:41
【问题描述】:
我在 bash 的 unix 下使用 R。
有时命令输出的行数比 bash 多。
如何防止输出滚动? IE。 R中是否有一些等价的越来越少的-S?
【问题讨论】:
-
谢谢!是的,基本上已经涵盖了它
标签: r
我在 bash 的 unix 下使用 R。
有时命令输出的行数比 bash 多。
如何防止输出滚动? IE。 R中是否有一些等价的越来越少的-S?
【问题讨论】:
标签: r
在 R 中执行此操作的一种方法也是重定向到文件:
sink("a_file.txt")
...your_commands...
sink()
【讨论】:
我认为page() 函数就像在 R 会话中拥有| less。它允许对象的两种表示形式; i) 你从 dput() 获得的版本,以及 ii) 如果你 print()-ed 对象获得的版本。
dat <- data.frame(matrix(rnorm(2000), ncol = 5))
page(dat, method = "print")
【讨论】:
也许可以将您的表达式包装在 capture.output 中,然后将结果分页到终端。
pager <- function(cmd,nlines=10){
output = capture.output(cmd)
pages = seq(1,length(output),by=nlines)
for(p in pages){
f = p
l = min(p+nlines-1,length(output))
cat(paste(output[f:l],"\n"))
readline("*more*")
}
return(invisible(0))
}
用法:pager(ls()),然后在每个“更多”提示符处按回车键(不是空格或其他任何内容)。
目前它不返回值。哦,如果没有输出,它就会失败。但是你可以修复这些:)
或者在 ESS 中使用 emacs 并让它全部向后滚动...
【讨论】:
不会
any_command | more
工作正常吗?
【讨论】:
“bash”没有行,你的终端有。
您可以在该应用程序的设置中设置终端的行数。
【讨论】:
您的问题不清楚。如果您正在谈论以交互方式使用 R 并且不小心运行了一个吐出大量行的命令,请在您的 R 会话中运行如下内容:options(max.print=4000)
【讨论】: