R:S3类泛型函数

本文探讨R语言中的S3类系统,强调其作为R大多数内置类的基础。S3类由列表和类名属性构成,支持多态性,通过泛型函数如`plot()`和`print()`实现不同类别的对象处理。以`print()`为例,解释如何定义和定制S3类的输出格式。
摘要由CSDN通过智能技术生成

R:S3类泛型函数

(本文参考R语言编程艺术,例子也是该书上的)

R中原始的类结构,就是S3类。其实,R中大多数内置类都是S3类。一个S3类包含一个 列表,再附加一个类名属性和调度的功能。说白了,就是R具有多态性,同一个函数针对不同的函数类型,可以调动不同的操作。也就是不同的类使用统一的接口。常用的泛型函数有plot()、print()等。现以print()来说明:

print

function (x, ...) 
UseMethod("print")
<bytecode: 0x0000000007278520>
<environment: namespace:base>

你会发现print()函数仅仅由一个UseMethod()的调用构成,实际上,这只是一个调用函数,因此,将print()视为一个泛型型函数,也就无可或非啦。


编写S3类

可以赋予一个S3类不同的输出类型,如下代码


> j<-list(name="Joe",salary=55000,union=T)
> j
$name
[1] "Joe"

$salary
[1] 55000

$union
[1]
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值