can I pass an unquoted column name as property argument in S7 new_class() function?
The below returns an error
library(S7)
library(tidyverse)
test <- new_class(
'test'
,properties = list(
data=class_data.frame
,column=class_any
)
)
test(mtcars,cyl)
You need to create a constructor:
test <- new_class(
'test',
properties = list(
data = class_data.frame,
column = class_name
),
constructor = function(data, column) {
column <- substitute(column)
new_object(S7_object(), data = data, column = column)
}
)
test(mtcars,cyl)
#' <test>
#' @ data :'data.frame': 32 obs. of 11 variables:
#' .. $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
#' .. $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
#' .. $ disp: num 160 160 108 258 360 ...
#' .. $ hp : num 110 110 93 110 175 105 245 62 95 123 ...
#' .. $ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
#' .. $ wt : num 2.62 2.88 2.32 3.21 3.44 ...
#' .. $ qsec: num 16.5 17 18.6 19.4 17 ...
#' .. $ vs : num 0 0 1 1 0 1 0 1 1 1 ...
#' .. $ am : num 1 1 1 0 0 0 0 0 0 0 ...
#' .. $ gear: num 4 4 4 3 3 3 3 4 4 4 ...
#' .. $ carb: num 4 4 1 1 2 1 4 2 2 4 ...
#' @ column: symbol cyl