Я довольно новичок в R и даже новичок в классах S4 и столкнулся с некоторыми проблемами с проверкой действительности. Проще говоря, он не работает. Вот мой код:Проверка достоверности класса S4 в R
check_filter_type <- function(object) {
length_filter_type <- length([email protected]_type)
#return("No filter type was specified.")
if (length_filter_type == 0L) {
return("No filter type was specified.")
}
possible_filter <- c('cutData', 'generateTimestamps',
'loadRawData', 'insertEventEntry',
'insertTimestampOffsetEntry',
'insertOffsetCorrectedEventEntry')
if(!([email protected]_type %in% possible_filter)) {
return("An unknown filter type was requested.")
}
return(TRUE)
}
setClass(
"filterPreProcessing",
representation(filter_type = "character"),
validity=check_filter_type
)
Независимо от характера аргумент я прохожу в качестве FILTER_TYPE, класс получает создан, хотя он не должен, как это определено в моей функции действия.
filter <- new("filterPreProcessing", filter_type="")
validObject(filter)
#[1] TRUE
filter <- new("filterPreProcessing", filter_type="unknown")
validObject(filter)
#[1] TRUE
Я уверен, что я неправильно понять, как он должен работать, но после просмотра ряда руководств и примеров, которые я не могу точно определить, мою ошибку.
Я не могу воспроизвести вашу проблему; попробуйте перезапустить сеанс R и снова проверить свой код. – nrussell