zl程序教程

您现在的位置是:首页 >  其他

当前栏目

《R语言数据挖掘:实用项目解析》——第1章,第1.11节apply原理

项目语言原理 解析 实用 数据挖掘 apply 1.11
2023-09-11 14:16:11 时间

本节书摘来自华章出版社《R语言数据挖掘:实用项目解析》一书中的第1章,第1.11节apply原理,作者[印度]普拉迪帕塔·米什拉(Pradeepta Mishra),更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.11 apply原理
apply函数以一个数组、一个矩阵或一个数据框作为输入,返回一个数组格式的结果。计算或运算由用户的自定义函数或内置函数定义。margin参数用于指定函数要作用于哪条边以及要保留哪条边。如果使用的数组是一个矩阵,那么可以指定margin是1(将函数应用于行)或2(将函数应用于列)。函数可以是任意用户自定义函数或内置函数,比如mean、median、standard deviation、variance等。这里我们将用Artpiece数据集来执行这个任务:


2cd222cdb94eab11a087f7e228fc2b1fd34682fd

lapply函数在处理数据框(应用任何函数)时很有用。在R语言中,数据框被当作一个列表,数据框中的变量就是列表中的元素。因此,我们可以利用lapply将一个函数应用到一个数据框中的所有变量上,示例如下:


d7d0cad562e4e58dd9a7345b4582e7e41ed385c9

sapply函数适用于一个列表中的元素,返回的结果是一个向量、矩阵或者列表。当参数是simplify=F时,sapply函数会像lapply函数那样返回一个列表;反之,当参数是simplify=T,即默认参数时,sapply会以简化的格式返回结果:


c033b41c4891b2b5e16cf7ef74f236bbe5e2f75f

有时我们想将一个函数应用到一个向量的子集,这些子集通常由其他向量定义(通常是一个因子)。tapply函数输出的是一个矩阵/数组,矩阵/数组中的每个元素是向量的g分组上f的值,g分组作用于行/列名上:


1b5f547b3e90739cefb01456fabf30ed8498df47

45e39d489954ce51c26d423e2b568dde7947cf86

apply函数族还包含其他一些函数,例如:
eapply:将一个函数应用于一个环境中的变量。
mapply:将一个函数应用于多个列表或多个向量参数。
sapply:递归地将一个函数应用于一个列表。