r - 将函数应用于向量中的每个元素组合

标签 r function apply

我想将某个(自定义)函数应用于数组的所有组合。我认为最好用一个例子来解释:

矩阵 1 :

A B C
1 2 3

矩阵2:
A B C  
4 5 6

我想执行以下操作:获取矩阵二的所有组合并对每个组合应用一个函数,如下所示:

矩阵3:
AB  AC  BC  CB  CA  BA  
4/2 4/3 5/3 6/2 6/1 5/1  

其中应用于矩阵3的函数为矩阵2的对应元素(由矩阵3每列的第一个字母表示)/矩阵2的对应元素(由矩阵3中每列的第二个字母表示)。

如果有什么不清楚的地方请告诉我,我觉得我可能没有完全解释清楚。

任何帮助将不胜感激!

谢谢

麦克风

最佳答案

结果并不完全符合您要求的格式,但您可以使用 outer从您的两个输入向量创建结果矩阵:

x <- c(A=1,B=2,C=3)
y <- c(A=4,B=5,C=6)
outer(x,y, FUN="/")

会给 :
     A   B         C
A 0.25 0.2 0.1666667
B 0.50 0.4 0.3333333
C 0.75 0.6 0.5000000

如果你真的想要一个向量作为结果,你可以使用:
m <- outer(x,y, FUN="/")
v <- as.vector(m)
names(v) <- as.vector(outer(names(x),names(y),FUN="paste0"))

然后得到:
       AA        BA        CA        AB        BB        CB        AC 
0.2500000 0.5000000 0.7500000 0.2000000 0.4000000 0.6000000 0.1666667 
       BC        CC 
0.3333333 0.5000000 

关于r - 将函数应用于向量中的每个元素组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19221750/

相关文章:

javascript - 可能调用的自定义函数列表

Bash 返回语句中出现非法数字错误

r - 如何使用apply函数将多个数据表读入R?

r - 哪个 R 实现提供最快的 JSD 矩阵计算?

r - 如何更改可折叠盒子的轮廓颜色 Shiny

r - 如何通过R中的data.table创建python风格的字典?

r - 来自 ODBC blob 的数据与 SQL 查询的返回不匹配

r - RStudio 项目打开时自动运行 R 代码

javascript - 从内部对象 javascript 设置字段值

python - 向量化python函数