2010-08-14 3 views
25

R의 소스 코드를 보려면 어떻게합니까? 내가 로컬 R 패키지를 설치하면 예를 들어, 기능 portfolio.optimR의 소스 코드보기

> require(tseries) 
> portfolio.optim 
function (x, ...) 
UseMethod("portfolio.optim") 
<environment: namespace:tseries> 

> methods(portfolio.optim) 
[1] portfolio.optim.default* portfolio.optim.ts*  

Non-visible functions are asterisked 
> portfolio.optim.ts 
Error: object 'portfolio.optim.ts' not found 
> portfolio.optim.default 
Error: object 'portfolio.optim.default' not found 

을 위해, 그것은뿐만 아니라 소스 코드를 다운로드합니까? 컴퓨터에 저장되는 위치는 어디입니까? 아는 사람 있나요? Non-visible functions are asterisked에 대응

+3

참고 : Uwe Ligges, "R Help Desk : 출처에 접근"_R News_, 6 (4) : 43-45, 2006 년 10 월. http://cran.r-project.org/doc/Rnews/Rnews_2006 -4.pdf –

답변

30
  1. ,이 ts 또는 기본 개체에 파견 실제 기능은 각각 tseries 네임 스페이스에 있지만 내보낼 수 없습니다 것을 의미합니다. 따라서 tseries:::portfolio.optim.default을 입력하면 네임 스페이스를 포함한 전체 패치를 지정하면 기능 코드가 표시됩니다.

  2. R 다운로드 소스 또는 바이너리 여부는 운영 체제에 따라 다릅니다. 두 경우 모두 tseries package is available의 출처 숙련 된 코더가 작성한 소스 코드를 읽는 것이 좋은 방법입니다.

+0

''Matrix' 패키지에'lu' 함수의 소스 코드를 표시 할 수 없습니다. 좀 봐 주시겠습니까? – user236215

22

getAnywhere 기능은 어떤 네임 스페이스가 기능인지 모를 때 유용합니다.

manual 또는 함수의 help page에 설명되어 있습니다. 이 기능의 대부분을 수행 할 수있는

15

는 이름으로 FUNCTIONNAME를 입력 R.에서 명령 창에 편집 (FUNCTIONNAME)를 입력합니다.

그 결과 함수의 소스 코드를 얻을 수 있습니다. 그러나, 나는 그것을 portfolio.optim 함수로 시도 했으므로 거기에서 작동하지 않는다. 표준 기능에 대해서만 가능합니다.

+0

왜 downvote? 나는 이것을 테스트했고 라이브러리 함수에서 작동한다. –

+0

RStudio에서 멋진 창을 불러옵니다. +1! –

5

보고 싶은 내용이 특정 방법의 소스 인 경우 몇 가지 옵션이 있습니다. 하나는 디버그 (portfolio.optim)입니다. 그런 다음 객체에서 함수를 실행하면 메소드를 단계별로 실행하여 코드를 출력합니다. 'n'을 사용하여 단계별로 진행하십시오. 완료되면 undebug (portfolio.optim)을 사용하는 것을 잊지 마십시오.

또는 필요한 패키지의 소스를 다운로드하고 압축을 풀어 유망한 이름을 가진 파일을 찾을 수 있습니다 (이 방법은 찾고자하는 기능이 C로 작성 될 수 있기 때문에 어렵습니다). 이것은 바이너리에서 코드를 찾는 것보다 쉽습니다. 이 경로를 사용하는 경우 다운로드 한 모든 곳의 압축 된 폴더에서 코드를 사용할 수 있어야합니다.

+0

와우. 이'debug' 함수에 대해 대단히 감사합니다. 그것은 굉장! –