假设我有一个n乘2的矩阵和一个将2-矢量作为其参数之一的函数。我想将这个函数应用到矩阵的每一行并得到一个n向量。如何在R中做到这一点?将函数应用于矩阵或数据帧的每一行
例如,我想计算三点二维标准正态分布的密度:
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
每一行?
如何以指定的方式将除点之外的其他参数的值传递给函数?
谢谢你细细品味!如果矩阵的行不是函数的第一个参数呢?如何指定矩阵的每一行分配给函数的哪个arg? – Tim 2010-11-21 04:10:39
阅读'apply()'的帮助 - 它按行进行扫描(当第二个参数是1,否则按列),并且当前行(或列)总是第一个参数。这就是事物的定义。 – 2010-11-21 04:15:46
@Tim:如果您使用内部R函数,并且该行不是第一个参数,请按照Dirk的说法进行操作,并创建您自己的自定义函数,其中第**行是**第一个参数。 – 2010-11-22 12:58:06