R:如何将对象传递给函数?

时间:2018-11-19 12:42:17

标签: r function oop

我是R的新手,正在尝试将对象传递给函数,但是尝试访问该对象的插槽时出现错误。

这些是我的主要代码:

x <- new("menu", competition=0, stats=0, query="")
y <- show(x)
show_graphics(y)

第二条指令后,我正确创建了对象“ y”,如您在此屏幕截图中所见:

enter image description here

然后,我调用一个函数“ 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)
}

0 个答案:

没有答案