8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

分组函数(tapply、by、aggregate)和 *apply 系列

Gereon will not feed AI 2月前

85 0

每当我想在 R 中执行 \'map\'py 操作时,我通常会尝试使用 apply 系列中的函数。但是,我从未完全理解它们之间的区别 -- 如何 {sapply、lapply 等}...

每当我想在 R 中执行某些\'map\'py 操作时,我通常会尝试使用该 apply 系列中的函数。

然而,我从来没有完全理解它们之间的区别——{ sapply , lapply 等} 如何将函数应用于输入/分组输入,输出会是什么样子,甚至输入可以是什么——所以我经常只是仔细检查它们直到得到我想要的。

有人可以解释一下何时如何使用哪一个吗?

我目前的理解(可能不正确/不完整)是......

  1. p5

  2. p6

  3. apply(matrix, 1/2, f) :输入是一个矩阵。输出是一个向量,其中元素 i 是 f(矩阵的第 i 行/第 i 列)
  4. tapply(vector, grouping, f) :输出是一个矩阵/数组,其中矩阵/数组中的元素是 f 向量分组 g ,并 g 被推送到行/列名称
  5. by(dataframe, grouping, f) :设为 g 分组。应用于 f 组/数据框的每一列。漂亮地打印分组和 f 每列的值。
  6. aggregate(matrix, grouping, f) :类似于 by ,但聚合不会漂亮地打印输出,而是将所有内容粘贴到数据框中。

附带问题:我还没有学过 plyr 或 reshape - 是否会 plyr 完全 reshape 取代这些?

帖子版权声明 1、本帖标题:分组函数(tapply、by、aggregate)和 *apply 系列
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Gereon will not feed AI在本站《list》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 附注:以下是各种 plyr 功能与基本 *apply 功能的对应关系(来自 plyr 网页 http://had.co.nz/plyr/ )

    Base function   Input   Output   plyr function 
    ---------------------------------------
    aggregate        d       d       ddply + colwise 
    apply            a       a/l     aaply / alply 
    by               d       l       dlply 
    lapply           l       l       llply  
    mapply           a       a/l     maply / mlply 
    replicate        r       a/l     raply / rlply 
    sapply           l       a       laply 
    

    的目标之一 plyr 是为每个函数提供一致的命名约定,在函数名称中编码输入和输出数据类型。它还提供了输出的一致性,因为来自的输出 dlply() 可以轻松传递到以 ldply() 产生有用的输出等。

    从概念上讲,学习 plyr 并不比理解基本 *apply 功能更困难。

    plyr reshape 函数几乎取代了我日常使用中的所有函数。但是,从 Plyr 简介文档中也可以看出:

    相关函数 tapply sweep 在中没有对应函数 plyr ,并且仍然有用。 merge 对于将摘要与原始数据相结合很有用。

返回
作者最近主题: