У меня есть следующие классы, методы и функции:
library(data.table)
#df <- fread(file.choose())
subject <- setRefClass("subject",
fields = list(id = "integer", Name = "character"),
methods = list()
)
visit <- setRefClass("visit",
fields = list(visit_no = "integer", Address = 'character'),
methods = list())
room <- setRefClass("room",
fields = list(room = "character", size = 'numeric'),
methods = list()
)
LongitudinalData <- setRefClass("longitudinalData",
contains = c('subject','visit','room'),
fields = list(
value = "numeric",
timepoint = "integer"),
methods = list(
subject <- function(x, p){return(x$value[which(x$id==p)])},
visit <- function(x, p){return(x$value[which(x$visit_no==p)])},
room <- function(x, p){return(x$value[which(x$room==p)])}
)
)
make_LD = function(df)
{
LongitudinalData$new(
id = df$id,
visit_no = df$visit,
room = df$room,
value = df$value,
timepoint = df$timepoint)
}
Затем, когда я пытаюсь выполнить следующую команду:
out <- subject.LongtitudinalData(x, 44) %>% visit.LongtitudinalData(0) %>% room.LongtitudinalData("bedroom")
Я получаю следующую ошибку:
Ошибка: оператор $ недопустим для атомных векторов
Данные: