我想计算两个数据帧之间的比例phi,将第一个数据帧的一列与第二个数据帧中的每一列进行比较。我只是使用矩阵作为示例代码。
mat.1<-matrix(rnorm(30),nrow = 10,ncol = 3)
colnames(mat.1)<-c("A","B","C")
mat.2<-matrix(rnorm(30),nrow = 10,ncol = 3)
colnames(mat.2)<-c("V1","V2","V3")
custom.correlation<-function(x,y){
cor(x,y)
}
我想找到一种方法来计算相关性,比如:
cust.corr(A,V1)
cust.corr(A,V2)
cust.corr(A,V3)
cust.corr(B,V1)
等等。等等,而不使用环路。
我的自定义函数更复杂,直接将2个数据帧作为输入。感谢
你可以做:
name_df <- expand.grid(colnames(mat.1), colnames(mat.2))
f <- function(i) custom.correlation(mat.1[,i[1]], mat.2[,i[2]])
name_df$cor <- apply(name_df, 1, f)
name_df
#> Var1 Var2 cor
#> 1 A V1 0.43061855
#> 2 B V1 -0.24786963
#> 3 C V1 -0.44468358
#> 4 A V2 -0.10678237
#> 5 B V2 0.51727866
#> 6 C V2 0.39317290
#> 7 A V3 -0.31834670
#> 8 B V3 -0.08776827
#> 9 C V3 -0.19823759