2010-08-17 2 views
7

R에서 긴 출력 또는 변수를보고 싶다면 더 많은 bash 명령과 동일한 기능이 있습니까?bash 명령에 더 많은 R이 있습니까?

+0

more는 bash 명령이 아닌 Unix 명령입니다. – xcramps

+0

나는 보통 내가보고 싶은 곳의 오브젝트를 부분 집합 화한다. myDF [1 : 500,]; myDF [1500 : 2500,] ... –

답변

1

저는 그렇게 생각하지 않지만 쉽게 만들 수 있습니다. readline("\nType <Return> to go to the next page : ")으로 사용자 입력을 찾고 객체를 반복적으로 순환하십시오.

3

ESS를 사용하는 경우 R 출력 버퍼를 스크롤하고 물론 여가 시간에도 검색 할 수 있습니다. 그냥 ... 이맥스를 사용하지 않는 사람들을 위해

3

말 ... ;-) 더크

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() 
    } 
} 

@이 모든 객체에 꽤 될 수 없습니다. 이것은 기본 메소드의 예제 일뿐입니다. matrix, data.frame 등의 메소드를 작성해야합니다.

+0

물론, 당신은 항상 자신의 운영체제를 다시 만들 수 있습니다 :) –

+1

assembleR 패키지를 작성해야합니다. 멀티 플랫폼은 문제 일 수 있습니다 ... –

+0

참고 사항 : data.frame 또는 매트릭스와 함께 이것을 사용하려면'length'를'nrow'로 대체해야합니다. – Shane

0

R에서 전체 데이터 세트를 스크롤하는 일은 거의 없습니다. 필자는 CSV로 밀어 넣을 때 스프레드 시트를 사용하여 그것을 읽는 경향이 있습니다. 단지 짧은 덩어리의 출력을보고 들어 나는 tail(head))가 (예, 꼬리 농담 머리가 나에게 나이를 결코) 만약 내가 물론,

만약 내 동료에 의해 요청을받은 head() 또는

tail() 사용 당신은 단지 벡터를보고 싶어, 당신이 할 수 다음 input PARAM이 문자 벡터를 필요로하기 때문에

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

이 데이터 프레임 또는 행렬 잘 작동하지 않습니다.

편집 데이터 프레임 및 "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를 사용하지 않습니까? 다음 날 앞뒤로 내가 원하는대로 스크롤 할 수 있습니다 F7 나는 리눅스에서 screen 또는 byobu를 사용 :

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

more(mtcars) 
more(more) 
+1

나는 이것을 좋아한다. 아주 좋아! –

+0

나는 file.show 함수에 대해 들어 본 적이 없었다! 아주 멋진. –

1

여기 내 트릭입니다. 그럼 다시, 나는 거의 less에서 얻을 때 bash에서 more을 거의 사용하지 않습니다. ;-) lessmore 이상입니다. 아주 짜증나.

또 다른 멋진 멀티 플랫폼 옵션은 RStudio로, 앞뒤로 쉽게 스크롤 할 수 있습니다.

관련 문제