2010-08-17 47 views
7

如果我想查看R中的長輸出或變量,是否還有與bash命令等價的更多?有沒有相當於bash命令的R等級?

+0

更多的是Unix命令,而不是bash命令。 – xcramps 2010-08-17 16:47:45

+0

我通常將我想要查看的對象子集。 myDF [1:500,]; myDF [1500:2500,] ... – 2010-08-18 07:59:01

回答

1

我不這麼認爲,但它應該很容易創建。只需用readline("\nType <Return> to go to the next page : ")查找用戶輸入並循環遍歷該對象。

3

如果你使用ESS,你可以滾動瀏覽R輸出緩衝區,當然也可以搜索等等。只是說...

3

對於我們這些不想使用Emacs誰... ;-) @德克

more <- function(x, n=6) { 
    i <- 1 
    while(i <= length(x)) { 
    j <- min(length(x),i+n-1) 
    print(x[i:j]) 
    i <- i+n 
    if(i <= length(x)) readline() 
    } 
} 

這不會是漂亮的所有對象。這只是一個默認方法的例子。您需要爲matrixdata.frame等寫入方法。

+0

當然,你總是可以重新創建自己的操作系統:) – 2010-08-17 15:31:33

+1

我應該編寫一個assembler包。多平臺可能是一個問題,雖然... – 2010-08-17 15:39:47

+0

只需要注意:要使用這與data.frame或矩陣,你需要用'nrow'替換'length'。 – Shane 2010-08-17 17:12:14

0

我很少在R中滾動整個數據集。當我這樣做時,我傾向於將其推送到CSV,然後使用電子表格仔細閱讀它。對於剛剛在看短塊的輸出,可以使用head()tail()

我有,當然,有人問我的同事,如果我tail(head))(是的,頭尾部的笑話永遠不老我)

如果你想看看只是一個載體,你可以這樣做:

system("more", input=as.character(rnorm(1000))) 

這並不能很好地數據幀或矩陣,因爲input PARAM需要一個特徵向量工作。

編輯

數據幀和矩陣,你可以召集我的「導出爲CSV」和命令行more功能是這樣的:

myDF <- data.frame(a=rnorm(1000), b=rnorm(1000)) 

more <- function(dataFrame) { 
    myTempFile <- tempfile() 
    write.csv(dataFrame, file=myTempFile, row.names = F) 
    system(paste("more", myTempFile)) 
} 

more(myDF) 
0

或者只是使用系統正more

more<-function(x){ 
    tempfile()->fn; 
    sink(fn);print(x);sink(); 
    system(sprintf('more %s',fn)); 
    system(sprintf('rm %s',fn)); 
} 

...或less我喜歡因爲我做不要弄亂終端:

less<-function(x){ 
    tempfile()->fn; 
    sink(fn);print(x);sink(); 
    system(sprintf('less %s',fn)); 
    system(sprintf('rm %s',fn)); 
} 

兩者都是* nixes;對於Windows,我認爲最好根據edit(和字符串連接)做一些事情。

11

爲什麼不使用內置的file.show?

more <- function(x) { 
    file <- tempfile() 
    sink(file); on.exit(sink()) 
    print(x) 
    file.show(file, delete.file = T) 
} 

more(mtcars) 
more(more) 
+1

我喜歡這個。非常好! – 2010-08-18 03:04:05

+0

我從來沒有聽說過file.show函數!非常漂亮。 – 2010-08-18 18:17:40

1

這裏是我的絕招:我在Linux下使用screenbyobu,然後F7,讓我來回通過任何我想要的滾動。然後再次,我很少使用more在bash中,當我從less得到這麼多。 ;-) less大於more。非常小心。

另一個不錯的多平臺選項是RStudio,它允許您輕鬆地來回滾動。