사용자 정의 S4 클래스의 선택적 슬롯을 지정하는 것이 올바른지 궁금합니다. 일부 현지화 된 메타 데이터를 저장하기위한 슬롯이있는 S4 클래스를 생성 중입니다. 메타 데이터가 모든 언어에서 항상 제공되는 것은 아니므로이 슬롯을 비워 둘 필요가 있습니다.맞춤 S4 클래스의 선택적 슬롯은 무엇입니까?
나는 그것을 가지게되었지만 해킹 된 것 같은 느낌이 들었다. (내가 몇 개의 슬롯을 제거했기 때문에 클래스가 약간 쓸모 없다.)
setMethod("initialize","myClass",function(.Object,meta_localized = NULL){
[email protected]_generatedon = Sys.Date()
# note meta_localized is a custom class, thus is.na does not work, it works
# only for list and vectors
if(!is.null(meta_localized)){
[email protected]_meta_localized <- meta_localized
} else {
.Object
}
}
웹에 주위 listOrNull 솔루션과 같은 가상 클래스 여러 방법을 시도하지만 나를 위해 작동하지 않았다. 그래서 이것은 정말로 나쁜 습관입니까? 권장 방법이 있습니까 (S4를 제외하고는 제외)