我正在尝试在 R 中创建各种距离/关联函数的矩阵。我有一个类似于 cor 的函数,它给出了两个向量之间的关联。现在我想获取一个数值向量的数据框(或矩阵),比如 mtcars
,并从函数和数据框创建一个矩阵。我认为这就是 outer
的用途,但我没有让它工作。这是使用 cor 和 mtcars
的尝试。
cor(mtcars$mpg, mtcars$cyl) #a function that gives an association between two vectors
outer(mtcars, mtcars, "cor") #the attempt to create a matrix of all vectors in a df
是的,我知道
cor
可以直接做到这一点,让我们假装它不能。 cor
只是找到两个向量之间的相关性。所以最终目标是得到你从
cor(mtcars)
得到的矩阵。先感谢您。
最佳答案
您可以将 outer
与以列名或列号作为参数的函数一起使用。
outer(
names(mtcars),
names(mtcars),
Vectorize(function(i,j) cor(mtcars[,i],mtcars[,j]))
)
关于r - 从一个函数和两个数字数据框创建一个矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9917242/