假設我有一個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