【发布时间】:2021-02-14 08:59:53
【问题描述】:
我有一个包含 n 列的时间序列,其中 n >=2。对于每一行,我试图通过对 n 个元素的每个排列应用一个函数来生成一个矩阵。例如:
perm <- function(x, y) x-y
row = c(1, 2, 3)
sapply(row,function(x) sapply(row, function(y) perm(x,y)))
> sapply(row,function(x) sapply(row, function(y) perm(x,y)))
[,1] [,2] [,3]
[1,] 0 1 2
[2,] -1 0 1
[3,] -2 -1 0
这种方法有效。但我知道这不是正确。我只是觉得有一种更好的方法可以使用矩阵数学函数来做到这一点,但我并没有完全弄清楚。应用方法很好,但我知道我可以做得更好。在这种情况下,像所示的那样为简单的减法复制输出将是一个很好的答案,但理想情况下,它会附带一些指向在文档中查找其他类型操作的位置的指针。对于它的价值,如果有人关心的话,实际数据是各种期限的利率列表,最终输出将是远期利率矩阵,所以只有上三角很重要,对角线和下三角不会没有任何信息。
【问题讨论】:
-
您可以将其简化为
sapply(row, perm, row)。 -
这个想法是完全消除 apply 的使用
标签: r math matrix finance quantitative-finance