2014-04-19 1 views
4

내가 돌아 왔을 때 사용했던 R 파일을 열어 보겠습니다. 페이지 상단에로드 된 라이브러리가 표시되지만 더 이상 무엇을하는지 기억하지 않습니다. 그래서 나는 나 자신에게 이렇게 생각한다 : 흠, 나는이 긴 R 파일에서이 라이브러리가 어디에 사용되는지 궁금하다.패키지 사용에 의한 R 파일 검색

특정 패키지의 어떤 기능이 특정 파일에 사용되었는지 나열하는 방법이 있습니까?

+0

오른쪽으로 도움말 (패키지 = 대상)을 사용하고 모든 기능을 나열한 다음 Ctrl + F를 하나씩 나열 할 수 있습니다. 그러나 많은 기능이 있다면, 그것은 오랜 시간이 걸릴 수 있습니다. 이 작업을 자동으로 수행 할 수있는 방법이 있기를 희망했습니다. [편집 : 여기에 내가 지금 삭제 된 의견에 응답했지만 명확히하기 위해 그것을 남겨 둘 것입니다.) – user1754606

답변

5

확실히 다른 방법이 있지만 패키지의 함수 목록을 얻을 수 있다면 readLines (스크립트를 R로 문자로 읽음), grepl (일치를 탐지) 및 sapply을 결합 할 수 있습니다. 함수를 가져 오는 방법은 pacman 패키지의 p_funs입니다. (전체 공개 : 나는 저자 중 한 명입니다.) 여기

내가 "test.R"

library(ggplot2) 

x <- rnorm(20) 
y <- rnorm(20) 
qplot(x, y) 

summary(x) 

로 저장 한 예제 스크립트이며, 여기 당신이하지 않으면 내가

script <- readLines("test.R") 
funs <- p_funs(ggplot2) 
out <- sapply(funs, function(input){any(grepl(input, x = script))}) 
funs[out] 
#[1] "ggplot" "qplot" 

을 사용하는 기능 감지 세션 pacman을 설치하려면 다른 방법을 사용하여 패키지의 기능 목록을 가져올 수 있습니다. 당신은

funs <- objects("package:ggplot2") 

으로 대체 할 수 있으며, 본질적으로 같은 답을 얻을 수 있습니다.

파일에 실제로 존재하는 것보다 더 많은 일치 항목이있을 수 있습니다. ggplot 함수는 실제로 스크립트에 없지만 "ggplot"문자열은 library(ggplot2)에 있습니다. 따라서 파일을 처음 스윕 한 후에 약간의 추가 파기가 필요할 수도 있습니다.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 나는 이것이 부적 절한 장소가 아니기를 바랍니다. 왜 팩맨은 크랜족에 있지 않습니까? – user1754606

+0

주로 업로드하기 전에 해결하고 싶은 버그에 대해 알고 있습니다. 타일러와 나는 2 월에 석방 할 계획 이었지만 우리는 모두 바빴고 팩맨에 대한 작업은 느려졌습니다. 학기가 곧 끝나고 나는 곧 CRAN에서 그것을 얻을 수 있기를 희망합니다. – Dason

+0

@ user1754606 방금 크래커에 팩맨을 제출했습니다. 며칠 후에 사용할 수 있어야합니다. – Dason