R的外部和?

我只是R的初学者,但到目前为止找不到解决scheme。 我怎样才能创build一个这样的两个向量matrix? 在Excel中,这是完全简单的,但我怎么能在R中做到这一点?

A = c(10,15,30) B = transpose(A) --> the transposed matrix of A => 10 15 30 

我也想做一下计算:A /(A + B) – > 10 /(10 + 10)= 0.5; 15 /(15 + 10)= 0.6等等。

所以,我最终得到这样的结果:

  10 15 30 10 0.5 0.6 0.75 VResult = 15 0.4 0.5 0.66 30 0.25 0.33 0.5 

我需要将这个简单的例子应用于32位数的Vector,所以我需要一种计算方法。 然后应该保存新的matrix。 如果你们能帮助我,那真是太好了!

已经有一个外部function,但也许最好写一个,所以你得到你想要的

 outerMat <- function(V) { n = length(V) X = rep(V, each = n) Y = rep(V, times = n) M = matrix(X / (X + Y), nrow = n) return(M) } A <- c(10, 15, 30) outerMat(A) [,1] [,2] [,3] [1,] 0.50 0.6000000 0.7500000 [2,] 0.40 0.5000000 0.6666667 [3,] 0.25 0.3333333 0.5000000 

这需要大约65毫秒的长度为1000的vector,所以应该是你的目的可以! 等效的外部function大约需要一半的时间。

假设B总是和A有相同的值,你可以使用

 outer(A, A, FUN=function(x,y) y/(x+y))