2010-05-16 69 views
19

是否有与可在R控制台内使用的unix less命令等效的内容?等效于R控制台内的unix“less”命令

+0

你试图看看文件系统或R环境中的东西(我认为后者)? – Shane 2010-05-16 16:41:45

+1

在R环境中。例如,如果我打印一个中等大小的数据框,我希望能够滚动浏览它。 – fmark 2010-05-17 00:02:03

回答

31

还有page()这在寻呼机上显示一个对象的表示,就像少一样。

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

完美无瑕,正是我一直在寻找的! – fmark 2010-10-02 08:05:00

+2

当我在Windows 8的RStudio中运行'page(data,method =“print”)'时,我得到一个提示“你想如何打开这种类型的文件?只有选项“在商店中查找应用程序”。其他人看到这个,我怎么才能使它工作? – yic 2015-01-10 19:59:32

11

不是。有明确的显示对象

  • head()tail()用于显示开始和对象
  • print()的命令,只是它的名字,然后回做同样的
  • summary()的依赖简明摘要关于其结构

和多个对象

  • str()less的等价物与语言和系统有点正交。如果Unix shell为您提供less来查看文件的内容(推测为ascii编码),它无法知道所有类型。

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

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

  • +0

    感谢您提供丰富的答案。我不同意“少”是不合适的 - 我少用的主要功能是在控制台中滚动字符串缓冲区。 R控制台输出大量字符串缓冲区。我想也许有可能在这里使用缓冲区滚动功能。 – fmark 2010-05-16 05:02:00

    +1

    你总是可以使用'system(“less”)'...当然,如果你使用任何* NIX系统... – aL3xa 2010-05-16 05:32:59

    +1

    fmark:另一种可能性是由'edit()'和'edit.data.frame ()'你可以试试。 – 2010-05-16 11:34:36

    6

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

    键入的R中壳下面

    sink("Routput.txt") 
    print(varname) 
    sink() 
    

    然后:

    less Routput.txt 
    
    +0

    当您想要滚动浏览大型数据集的str()时(页面()不适用于此),效果很好) – dahved 2017-10-24 13:37:00

    0

    如果该文件已经在磁盘上,那么你可以使用file.show

    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自由使用,再利用,编辑,洒在你的麦片等