说我有一个矢量:
v <- c(11, 21, 32, 55)
Run Code Online (Sandbox Code Playgroud)
现在我想计算一个矩阵diffmat,它包含v的所有元素之间的差异
所以相当于:
11 21 32 55
11 0 10 21 44
21 -10 0 11 34
32 -21 -11 0 23
55 -44 -34 -23 0
Run Code Online (Sandbox Code Playgroud)
你可以outer()用来做这件事.
尝试:
v <- c(11, 21, 32, 55)
outer(v, v, `-`)
[,1] [,2] [,3] [,4]
[1,] 0 -10 -21 -44
[2,] 10 0 -11 -34
[3,] 21 11 0 -23
[4,] 44 34 23 0
Run Code Online (Sandbox Code Playgroud)
该函数outer()使用自定义函数计算两个向量上的外积.由于操作员-也是一个功能,你可以在里面使用它outer().但是,由于-是非标准名称,您必须使用反引号或引号,即`-`或"-".