每当我想在R中“映射”py时,我通常会尝试在apply系列中使用函数。 然而,我从来没有完全理解它们之间的差异 – 如何将input/分组input的function,输出的结果,甚至是input的内容我经常只是通过他们,直到我得到我想要的。 有人可以解释如何使用哪一个? 我目前(可能不正确/不完整)的理解是… sapply(vec, f) :input是一个向量。 输出是一个向量/matrix,其中元素i是f(vec[i]) ,给出一个matrix,如果f有一个多元素输出 lapply(vec, f) :与sapply相同,但是输出是列表? apply(matrix, 1/2, f) :input是一个matrix。 输出是一个向量,其中元素i是f(matrix的行/列) tapply(vector, grouping, f) :output是一个matrix/数组,其中matrix/数组中的一个元素是该vector的分组g处的f的值,并且g被推到行/列名 by(dataframe, grouping, f) :让g是一个分组。 将f应用于组/数据框的每一列。 漂亮的打印分组和每列的f的值。 aggregate(matrix, grouping, f) :类似于,但不是漂亮地打印输出,聚合将所有东西都粘到数据框中。 旁边的问题:我还没有学会plyr或重塑 – 将plyr或reshape完全取代所有这些?