我想在另一个引用类中使用自定义引用类,但此代码失败:
nameClass <- setRefClass("nameClass", fields = list(first = "character",
last = "character"),
methods = list(
initialize = function(char){
chunks <- strsplit(char,"\\.")
first <<- chunks[[1]][1]
last <<- chunks[[1]][2]
},
show = function(){
cat("Special Name Class \n:")
cat("First Name:")
methods::show(first)
cat("Last Name:")
methods::show(last)
}
))
# this works fine
nameClass$new("tyler.durden")
当我尝试添加具有类字段的第二个类时,nameClass
无法启动该类。
personClass <- setRefClass("personClass", fields = list(fullname = "nameClass",
occupation = "character"),
methods = list(
initialize = function(Obj){
nm <- deparse(substitute(Obj))
fullname <<- nameClass$new(nm)
occupation <<- Obj
}))
这只是返回:
Error in strsplit(char, "\\.") :
argument "char" is missing, with no default
我可以想象一个解决方案,其中 nameClass 是一个 S4 类,但我读了一点,让我有点害怕混合 S4 和参考类。当我想更准确地定义这个特定的名称字段而不仅仅是“字符”时,我是否遗漏了一些东西或者我应该简单地使用 S4 类?
我还发现这个帖子的标题很有希望,但不知道这如何解决我的问题。