banner
大数据平台>大数据技术与应用>用R语言编写函数

用R语言进行数据分析:编写函数

作者: afenxi来源: afenxi时间:2017-05-14 13:38:43

正如前面内容所暗示的一样,R 语言允许用户 创建自己的函数(function)对象。R 有一些 内部函数并且可以用在 其他的表达式中。通过这个过程,R 在程序的功能性, 便利性和优美性上得到了扩展。学写这些有用的函数 是一个人轻松地创造性地使用 R 的 最主要的方式。

需要强调的是,大多是函数都作为 R 系统的一部分提供,如mean(), var(), postscript() 等等。这些函数都是用 R 写的, 因此在本质上和用户写的没有差别。

一个函数是通过下面的语句形式定义的。

> name <- function(arg_1, arg_2, ...) expression

其中 expression 是一个 R 表达式(常常是一个成组 表达式),它利用参数 arg_i 计算最终的结果。 该表达式的值就是返回给函数的最终值。

可以在任何地方以 name(expr_1, expr_2, ...) 的形式调用函数。

Simple examples: 简单的例子

这是一个简单的例子,它用来计算双样本的 t-统计量,并且显示“所有步骤”。这是一个人为的例子, 当然还有其他更简单的办法 得到一样的结果。

函数定义如下:

> twosam <- function(y1, y2)

Object orientation: 面向对象

一个对象的类决定了它会如何被一个 泛型函数处理。相反,一个泛型函数 通过参数类的特异参数来完成特定工作或者事务的。 如果参数缺乏任何类属性, 或者在该问题中有一个不能被任何泛型函数处理的类, 泛型函数会有一种默认的处理方式。

下面的一个例子使这个问题清晰。类机制为用户提供了为特定问题设计和编写 泛型函数的便利。 在其他泛型函数中,plot() 用于图形化显示 对象,summary() 用于各种类型的概述分析, 以及 anova() 用于比较 统计模型。

能以特定方式处理类的泛型函数的数目非常的庞大。 例如,可以在非常时髦的类对象 "data.frame" 中使用的函数有

[ [[<- any as.matrix [<- mean plot summary

可以用函数 methods() 得到当前对某个类对象 可用的泛型函数列表:

> methods(class="data.frame")

相反,一个泛型函数可以处理的类同样很多。 例如,plot() 有默认的方法和变量 处理对象类 "data.frame", "density","factor",等等。一个完整的列表同样可以通过 函数 methods() 得到:

> methods(plot)

读者可以参考 完整描述这一机制的正式文档。

原创文章,作者:古思特,如若转载,请注明出处:《用R语言进行数据分析:编写函数》http://www.afenxi.com/post/3407

banner
看过还想看
可能还想看
最新文章
Yonghong Z-Suite一站式大数据分析平台 —— 以卓越的数据技术为客户创造价值,实现客户成功。