2013-10-24 2 views
5

R에서는 함수의 소스를 단순히 다른 객체로 볼 수 있습니다.함수 소스 코드 검색

나는 소스에 저장된 파일을 모른 채,이 소스 코드를 검색 할 수있는 방법을 찾고 있어요.

예를 들어, 나는 기능 shapiro.test 함수 sort이 포함되어 있는지 알고 할 수 있습니다 (그것을 않습니다).

shapiro.test 경우 문자열이나 문자열의 벡터 내가

grep('sort', shapiro.test) 

을 사용했다 그러나 shapiro.test 함수이기 때문에,이 as.character의 오류 "오류를 제공 (X) : 는 '유형을 강요 할 수 없습니다 클로저 '를'문자 '유형의 벡터에 연결합니다.

문자열에 함수를 강제 적용하려는 행운이 없었습니다. 추가 기능과 마찬가지로 기본 함수를 컴파일 할 때 검색 할 수있을 것으로 기대하지는 않습니다.

답변

8

deparse를 사용하여 솔루션 :

> grep ("sort", deparse(shapiro.test)) 
[1] 5 
3

capture.output에 함수를 래핑하면 각 행을 문자 벡터의 요소로 변환 할 수 있습니다.

> grep("sort",capture.output(shapiro.test)) 
[1] 5 

아니면 그냥 edit(shapiro.test)를 호출하고 함수를 통해 검색 할 수 options(editor=)에 의해 지정된 텍스트 편집기를 사용할 수 있습니다. 여기

+0

두 답변이 유사한 우수하다. 나는 약간 깔끔하게 보였던 다른 대답에 '정확한'것을 주었다. 감사! – timcdlucas