函数是一个可以调用的对象。本质上讲,它是一个具有内在逻辑的机制,输入一组值
(形参或实参),并依据其逻辑返回一个值。
在前面的章节中,我们遇到过一些 R 的内置函数。例如,在 is.numeric( )函数中
输入任意一个 R 对象,会返回一个判断该对象是否为数值向量的逻辑值。类似的还有
is.function( )函数,它可以判断一个给定的 R 对象是否为函数。
事实上,在 R 环境中,我们所使用的一切都是对象,所做的一切都是函数,而且,也
许会令你惊讶的是,所有的函数都是对象。甚至连<-和+也都是带有两个参数的函数。尽
管它们被称为二元运算符,其本质上也都是函数。
当我们做一些简单的、交互式的数据分析时,通常不必自己编写函数,R 的内置函数
和几千个扩展包提供的函数已经够用了。
但是,如果你需要在数据操作或分析中重复某些逻辑或过程,那么 R 中内置的或扩展
包中的函数可能无法充分满足你的需求。因为它们不是为了满足特定的任务需求或特定格
式的数据集编写的。此时,你就需要针对特定需求自己创建函数了。