相当于R控制台中的unix“less”命令

时间:2010-05-16 04:20:13

标签: r shell

是否有可以在R控制台中使用的unix less命令的等效命令?

5 个答案:

答案 0 :(得分:34)

还有page()在寻呼机中显示对象的表示形式,例如更少。

dat <- data.frame(matrix(rnorm(1000), ncol = 10))
page(dat, method = "print")

答案 1 :(得分:12)

不是真的。有命令

  • head()tail()用于显示对象的开头和结尾
  • print()用于显式显示一个对象,只是其名称后跟return返回
  • summary()以获取取决于对象的简明摘要
  • str()的结构

等等。 less的等价物与语言和系统略有正交。如果Unix shell为您提供less来查看文件的内容(假定为ascii编码),则无法了解所有类型。

R的不同之处在于它知道对象类型,这就是为什么summary()以及整个建模框架更合适的原因。

后续编辑: edit()以及edit.data.frame()提供了另一种可能性。

答案 2 :(得分:7)

我将打印输出保存到文件中,然后使用编辑器或less进行读取。

在R

中键入以下内容
sink("Routput.txt")
print(varname)
sink()

然后在一个shell中:

less Routput.txt

答案 3 :(得分:1)

如果文件已在磁盘上,则可以使用file.show

答案 4 :(得分:1)

你可能会喜欢我的小玩具:

short <- function(x=seq(1,20),numel=4,skipel=0,ynam=deparse(substitute(x))) {
ynam<-as.character(ynam)
#clean up spaces
ynam<-gsub(" ","",ynam)
#unlist goes by columns, so transpose to get what's expected
if(is.list(x)) x<-unlist(t(x))
if(2*numel >= length(x)) {
    print(x)
    }
    else {  
        frist=1+skipel
        last=numel+skipel
        cat(paste(ynam,'[',frist,'] thru ',ynam,'[',last,']\n',sep=""))
        print(x[frist:last])
        cat(' ... \n')
        cat(paste(ynam,'[',length(x)-numel-skipel+1,'] thru ', ynam, '[', length(x)-skipel,']\n',sep=""))
        print(x[(length(x)-numel-skipel+1):(length(x)-skipel)])
        }
}
blahblah版权归我所有,不是迪士尼blahblah免费使用,重复使用,编辑,洒在你的Wheaties等等。