假设有两个包。
Package_A 有这个类:
setClass("Person",
slots = c(
name = "character",
age = "numeric"
)
)
setGeneric("age", function(x) standardGeneric("age"))
setMethod("age", "Person", function(x) x@age)
Package_B 有一个类似的类:
setClass("Person",
slots = c(
name = "character",
age = "numeric"
)
)
setGeneric("age", function(x) standardGeneric("age"))
setMethod("age", "Person", function(x) x@age * 10) # notice the difference here
所以用户已经在他们的工作环境中加载了这两个包:
library(Package_A)
library(Package_B)
在这个用户的工作环境中,R 如何解决创建“Person”对象的困惑:
john <- new("Person", name = "John Smith", age = 7)
在此用户的工作环境中,R 如何解析调用正确的方法:
age(john)