사용자 정의 함수가 포함 된 패키지를 RStudio에 생성했습니다.R, 패키지의 함수를 수정 한 후 수정 사항이 무시됩니다.
이 패키지에 포함 된 기능에서 뭔가를 변경하면이 작업이 "업데이트"되기를 기대하면서 패키지를 다시 빌드하려면 Build (빌드) 탭에서 "Build & Reload"를 사용하고 있습니다.
일반적으로 완벽하게 작동합니다. 그러나 그것이 일어나지 않는 한 가지 기능이 있습니다. function.R 파일을 열면 바로 수정됩니다. 그러나 콘솔이나 스크립트에서 호출하면 이전 버전이로드됩니다. 재시동, "정리 및 재구성"과 같은 간단한 작업을 시도했습니다. 다시 제거하고 다시 작성하고 다시 추가하려고했지만이 경우에도 놀랍게도 이전 버전이로드되었습니다. 나는이에보고했지만, 난 여전히 필요한 일반적인 이해가 부족하고 나는이 차이가있는 경우도 확실하지 않다 :
이 기능이 패키지에 다른 사람과 다르게 표시하는 눈치있는 유일한 방법입니다 문제와 관련이 있습니다.
설명 1 : 글로벌 환경이 비어있어 함수를 마스킹하지 않습니다. 비고 2 : 검색() 경로 (패키지의 이름 SDA이며, 제 2 위치에)입니다 :
> search()
[1] ".GlobalEnv" "package:SDA" "package:splines" "tools:rstudio" "package:stats" "package:graphics" "package:grDevices" "package:utils"
[9] "package:datasets" "package:methods" "Autoloads" "package:base"
NB : 나는 개발을위한 패키지 "DevTools로"를 사용하고 있습니다.
다시 빌드 한 후에는'library'를 호출 할 때 사용할 새 기능의 원래 패키지를 다시 설치하거나 업데이트해야합니다. 다시 설치 했습니까? R은 업데이트 될 때까지 이전 패키지를 계속 사용합니다. –
> install.packages ("SDA") install.packages의 오류 :로드 된 패키지 업데이트 ----- 또한이 작업은 재구성이 다른 기능들과 관련이 있습니다. – Giuseppe
당신의 기능이 다른 환경에서 보이는 이유는 그것이 호출되었을 가능성이 높습니다. 패키지에서 다른 함수를 호출하면에서 해당 정의가 창에 표시됩니다. R은 호출 될 때까지 실제로 패키지에서 함수 오브젝트를 인스턴스화하지 않습니다. –
Jonathan