创建 S3 方法(1)
仅有泛型函数本身并不会执行任何操作。为此,您需要创建方法。方法就是常规函数,但需满足两个条件:
- 方法名必须是
generic.class这种形式。 - 方法签名(即传入方法的参数)必须包含泛型的签名。
语法如下:
generic.class <- function(some, arguments, ...) {
# Do something
}
本练习是课程的一部分
R 中的 S3 与 R6 面向对象编程
练习说明
您的工作区中已定义了泛型函数 get_n_elements()。
- 输入其名称(不带括号)以查看其工作方式。
- 编写一个 S3 方法,用于计算
data.frame对象中的元素个数。- 函数名应为泛型名,后接一个
.,再接输入对象的类名。 - 输入参数应为
x和...。 - 函数体应为单行,返回数据框的元素个数(行数乘以列数)。
- 函数名应为泛型名,后接一个
- 对
sleep(文档)数据集调用get_n_elements,并将结果赋给变量n_elements_sleep。 - 将
n_elements_sleep打印到控制台查看结果。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# View get_n_elements
get_n_elements
# Create a data.frame method for get_n_elements
___ <- ___
# Call the method on the sleep dataset
n_elements_sleep <- ___
# View the result
n_elements_sleep