2017-09-18 14 views
0

나는 이것이 DESCRIPTIONS 파일R 패키지에 종속성을로드하려면 어떻게해야합니까?

Imports: 
    dplyr, 
    ggplot2, 
    ncdf4 

에서 사용할 수있는 R 패키지를 개발하고 그리고 난 패키지를 Build and Reload 때 나는 세 번째 종속

testFun <- function(file, lat, long){ 
    ncfname <- file.path(file,fsep = .Platform$file.sep) 
    xfile <- nc_open(ncfname) #Opens the NetCDF file 
    lat <- ncvar_get(xfile, 'lat') #Extracts all latitudes 

    ...Calculations 

    return(XYZ) 
} 

를 사용하는 예 기능을 가지고 있고, I 함수를 실행하십시오, could not find function "nc_open". 나는 내가 코드에서 사용하는 모든 의존성에 packagename::을 접두사로되어 있습니까 ncdf4::nc_open

로 교체 할 때

는하지만, 그것은 작동? 또는 나는 무엇인가 놓치고 있냐?

일반적으로 모든 종속성은 DESCRIPTIONS에서 설치되며 패키지 접두어가 없어도 사용할 수 있습니다.

답변

0

가장 쉬운 방법과 가장 올바른 방법은 누군가의 현재 환경을 제거 할 수있는 패키지를 열지 않고 패키지에서 직접 함수를 가져 오는 것입니다.

이 시도 :

xfile <- ncdf4::nc_open(ncfname) 

그것은 당신이 충돌없이 필요에 액세스해야합니다. 그것은 현재 선호되는 방법입니다. 왜냐하면 그것은 사용자를 위해 찾은 것과 같이 사물을 남겨두기 때문입니다. 또한 사람들이 탐색 할 때 어떤 일이 일어나는지 쉽게 알 수 있습니다.

+0

예 ..... 올바른 방법입니다. – sconfluentus

+0

가능하다면 지금 당장이를위한 참고 자료를 원합니다. 어떤 문서에서 사용할 수 있습니까? 그것은 안전하지만 성가신 것처럼 보입니다. – maximusdooku

+0

Hadley WIckam의 사이트 http://r-pkgs.had.co.nz/namespace.html로 이동하십시오. (대부분 DBI 기능을 수행하는 많은 데이터베이스 패키지와 같이) 대부분의 패키지를 사용하지 않는 한 다음과 같이 명확하게 명시되어 있습니다 : . – sconfluentus

1

다음 중 하나를 코드에서 다음 네임 스페이스 파일 importFrom(ncdf4, nc_open)에 한 줄을 추가하고

  • : ncdf4::nc_open(...)

또는 :

  • 명시 적으로부터의 패키지와 기능을 접두사 패키지없이 함수를 호출하십시오. nc_open(...)

가져올 모든 기능에 대해 importFrom 줄을 추가하는 대신 import(ncdf4)을 사용하여 해당 패키지의 모든 것을 스 내핑 할 수 있습니다.

+0

나는 명시 적 접두사가 코드 명확성에 도움이 될 것이라고 생각한다. 그래서 나는 그것을 간단하게 유지하고 그것에 충실 할 것입니다. 다른 수입품 목록을 유지하고 싶지 않습니다. – maximusdooku

+0

모든 함수에'importFrom()'이 필요하지 않습니다. 패키지 당 하나씩 :'importFrom (ncdf4, nc_open, nc_close, nc_foo, nc_bar)'. –

+0

아, 고마워! 유용하게 들리네 ..... – maximusdooku