簡體   English   中英

R中的非對稱eta方陣

[英]Asymmetric eta square matrix in R

我有一個函數可以計算定性和定量變量之間的相關性的平方根系數:

eta <- function(x,y){
  m <- mean(x,na.rm = TRUE)
  sct <- sum((x-m)^2,na.rm = TRUE)
  n <- table(y)
  mk <- tapply(x,y,mean)
  sce <- sum(n*(mk-m)^2)
  return(ifelse(sct>0,sce/sct,0))
}

想象一下,我有以下變量(僅作為示例),其中缺少值:

a <-  factor(c("M","NA","F","F","NA","M","F"))
b <-  factor(c("y","y","y","n","n","n","y")
d <- c(2,5,4,8,9,6,4)
e <- c(5,7,8,5,6,9,7) 

我需要編寫一個函數,該函數針對定性和定量變量x和y的每種組合返回具有eta系數的矩陣。 可能是這樣(不起作用):

 matrix<-function(x,y){
  col.y<-ncol(y)
  row.x<-nrow(x)
  M<-matrix(ncol=col.y,nrow=row.x,dimnames = list(names(x), names(y)))
  for(i in 1:col.y){
    for(j in 1:row.x){
      M[i,j]<-rap.corr(y[,i],x[,j])
    }
  }
  return(M)
}

我怎樣才能做到這一點? 先感謝您..

您可以使用mapply來做到這mapply

qual = list(a=a, b=b)
quant = list(e=e,d=d)

m = matrix(mapply(eta, rep(quant, length(qual)), rep(qual, each=length(quant))), ncol=length(qual))

rownames(m) = names(quant)
colnames(m) = names(qual)

#> m
#           a            b
#e 0.01950355 0.0008865248
#d 0.25333333 0.7363333333

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM