我使用鼠标包创建多个imputation。我想创建一个相关矩阵(和一个相关系数的p值矩阵)我使用鼠标。我很乐意这么做。但是这给出了一个数据帧,其中的变量在第一个列中,然后是包含r、p、t值等的多个列。
我正在寻找一种方法来把这个数据框架变成一个"好旧"x和y之间的相关系数在[x,y]位置的矩阵,以及一个p值矩阵有人有简单的方法来做这个吗?
下面是一些要复制的代码:data <- mtcars
mt.mis <- prodNA(mtcars, noNA = 0.1)
imputed <-mice(iris.mis, m = 5, maxit = 5, method = "pmm")
correlations<- miceadds::micombine.cor(mi.res=iris.mis, variables = c(1:3))
我正在寻找的是类似于cor(mtcars)的输出。谁能帮忙?
我最终编写了自己的函数。也许可以做得更有效率,但这就是我做的。
cormatrix <- function(r, N){
x <- 1
cormatrix <- matrix(nrow = N, ncol = N) # create empty matrix
for (i in 1:N) {
for (j in i:N) {
if(j>i){
cormatrix[i,j] <- r[x]
cormatrix[j,i] <- r[x]
x <- x + 1
}
}
}
diag(cormatrix) <- 1
cormatrix
}
你可以用microcombine的输出来调用它。or和模型中变量的数量作为参数。例如cormatrix(correlation $r,ncol(df))