我是R的新手,正在尝试将对象传递给函数,但是尝试访问该对象的插槽时出现错误。
这些是我的主要代码:
x <- new("menu", competition=0, stats=0, query="")
y <- show(x)
show_graphics(y)
第二条指令后,我正确创建了对象“ y”,如您在此屏幕截图中所见:
然后,我调用一个函数“ show_graphics”,并将该对象“ y”像参数一样传递。但是当我尝试在函数的第一个指令中访问插槽时:
show_graphics <- function(menu){
data <- getData(menu@query)
......
}
我遇到一个错误,告诉我尝试访问有一个错误 到对象的插槽“查询”到基本类“功能”,而没有 插槽。
如何正确地将对象传递给函数?或者如何从传递给函数的对象中获取值?
我做错什么了吗?
编辑我:
这是创建对象“菜单”的代码:
setClass("menu", slots=list(competition="numeric", stats="numeric", query="character"))
show <- function(object) 0
setGeneric("show")
setMethod("show", "menu", function(object){
object@competition <- 14
object@stats <- 1
object@query <- "query"
return (object)
})
编辑II:
getData是另一个函数,这是原型的代码:
getData <- function(query){
return (query)
}