2012-09-26 36 views
3

如何在(i,j)條目是i和j的函數時創建矩陣(常規感覺,而不是R感覺)?我認爲它涉及到apply(),但我似乎無法解決如何使用它。R使用行和列的公式創建矩陣

說,如果我有列X1,X2,...和行Y1,Y2,其中X1和Y1爲R的對象,我想建一個表/矩陣,其中的條目是XI的功能和YJ每個我和j。

對不起,如果這已被其他地方回答。

+0

http://stackoverflow.com/q/11786795有點相關。 – MvG

回答

7

我不確定我是否理解整個問題。我將在第一句中回答這個問題:

fun <- function(i,j) i*j 

rows <- 1:5 
cols <- 1:3 

outer(rows,cols,FUN=fun) 

    [,1] [,2] [,3] 
[1,] 1 2 3 
[2,] 2 4 6 
[3,] 3 6 9 
[4,] 4 8 12 
[5,] 5 10 15 
+1

或者使用匿名函數進行內聯:'outer(rows,cols,function(i,j)i * j)' – MvG

+0

或者在這種特殊情況下'outer(rows,cols,「*」)''行,列)'(因爲'「*」'是'FUN'的默認值) –

+0

@Ben Bolker當然,但OP詢問了一般情況。 – Roland