다른 R 패키지의 S4 클래스와 동일한 이름으로 내 S4 클래스를 사용하고 유지하는 방법은 무엇입니까?다른 R 패키지의 S4 클래스와 동일한 이름으로 내 S4 클래스를 사용하고 유지하는 방법은 무엇입니까?
'FeatureSet'이라는 S4 클래스가 포함 된 대형 R 패키지를 작성하고 있습니다. 불행히도, 이것은 널리 사용되는 'oligo'패키지의 가상 S4 클래스의 이름이기도합니다. 내가
new("FeatureSet")
를 내 첫 번째 패키지, 다음 올리고을로드하고 호출 할 때 나는 네임 스페이스 파일에서
Error in new("FeatureSet") :
trying to generate an object from a virtual class ("FeatureSet")
, 나는 'exportClasses'와 'exportClassPattern'수출을 포함하여 시도했습니다 오류를 얻을 이 S4 정의, 또는 모든 S4 정의, 내 패키지에서 운없이. 또한 내 패키지에 제네릭에 대한 메서드를 정의한대로
exportMethods(coerce, initialize, show)
을 포함 시켰습니다.
같은 이름의 여러 정의가 첨부 된 경우 특정 S4 정의 만 인식하도록 R 코드를 작성하는 가장 좋은 방법은 있습니까? 물론 수업에 다른 이름을 붙일 수는 있지만, 앞으로 수업이 다른 패키지와 충돌하지 않도록하는 방법이 있어야합니다. 나는 평소 포럼과 문서를보고 꽤 많은 시간을 보냈으며이 질문이 어디서나 대답되지 않았 음을 알면 놀랐다. 미리 감사드립니다!
대단히 감사합니다. @ Martin-Morgan! 위의 설명과 비슷한 것을 가지고 놀기 시작했는데, where = getNameSpace ("MyPackage")'대신에'envir = as.environment ("MyPackage")'를 사용하려고했습니다. 필자는 내 패키지의 모든 S4 클래스 이름에 접두어를 추가하기로 결정했습니다 (많은 경우 FeatureSet과 같이 상당히 일반적인 이름이 붙어 있습니다). 이후의 충돌을 막아야합니다. –