Questions tagged «sapply»

10
分组功能(tapply,by,aggregate)和* apply系列
每当我想在R中执行“ map” py任务时,我通常都会尝试使用该apply系列中的函数。 但是,我从未完全理解它们之间的区别-{ sapply,lapply等等} 如何将函数应用于输入/分组输入,输出将是什么样,甚至输入是什么-所以我经常只是遍历所有这些,直到我得到我想要的。 谁能解释什么时候使用哪一个? 我目前(可能不正确/不完整)的理解是... sapply(vec, f):输入是向量。输出是向量/矩阵,其中element i是f(vec[i]),如果f有多元素输出,则为您提供矩阵 lapply(vec, f):与相同sapply,但输出是列表? apply(matrix, 1/2, f):输入是一个矩阵。输出是一个向量,其中element i是f(矩阵的行/ col i) tapply(vector, grouping, f):输出是一个矩阵/数组,其中矩阵/数组中的元素是向量f分组g中的值,并g被推送到行/列名 by(dataframe, grouping, f):让g成为一个分组。适用f于组/数据框的每一列。漂亮地打印f每列的分组和值。 aggregate(matrix, grouping, f):类似于by,但不是将输出漂亮地打印出来,聚合将所有内容粘贴到一个数据框中。 附带的问题:我还没有学会摆弄或重塑-是否会全部取代plyr或reshape全部取代?
1040 r  lapply  sapply  tapply  r-faq 

6
将函数应用于矩阵或数据框的每一行
假设我有一个2乘矩阵和一个将2向量作为其参数之一的函数。我想将函数应用于矩阵的每一行并获取一个n向量。如何在R中执行此操作? 例如,我想在三个点上计算2D标准正态分布的密度: bivariate.density(x = c(0, 0), mu = c(0, 0), sigma = c(1, 1), rho = 0){ exp(-1/(2*(1-rho^2))*(x[1]^2/sigma[1]^2+x[2]^2/sigma[2]^2-2*rho*x[1]*x[2]/(sigma[1]*sigma[2]))) * 1/(2*pi*sigma[1]*sigma[2]*sqrt(1-rho^2)) } out <- rbind(c(1, 2), c(3, 4), c(5, 6)) 如何将函数应用于的每一行out? 如何以指定的方式将除点以外的其他参数的值传递给您?
129 r  function  matrix  apply  sapply 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.