I want to calculate phi coefficient for every pair of the columns. Is there a way to generate a matrix like a correlation matrix? I know cor function in the case below gives same answer as phi coefficient. ?x <- sample(c(0,1), 10, replace=TRUE) y <- sample(c(0,1), 10, replace=TRUE) z <- sample(c(0,1), 10, replace=TRUE) df <- data.frame(x,y,z) cor(df) library(psych) phi(df)? Thank you, Kumar Mainali Postdoctoral Associate Department of Biology University of Maryland ?
Phi coefficient matrix (package psych)
3 messages · Jim Lemon, Kumar Mainali
HI Kumar,
A simple way is:
phimat<-function(x) {
xcol<-dim(x)[2]
newx<-matrix(NA,nrow=xcol,ncol=xcol)
for(i in 1:xcol) {
for(j in 1:xcol) newx[i,j]<-phi(table(x[,i],x[,j]))
}
rownames(newx)<-colnames(newx)<-colnames(x)
return(newx)
}
phimat(df)
Jim
On Wed, Apr 22, 2015 at 6:34 AM, Kumar Mainali <kpmainali at gmail.com> wrote:
I want to calculate phi coefficient for every pair of the columns. Is there
a way to generate a matrix like a correlation matrix? I know cor function
in the case below gives same answer as phi coefficient.
x <- sample(c(0,1), 10, replace=TRUE)
y <- sample(c(0,1), 10, replace=TRUE)
z <- sample(c(0,1), 10, replace=TRUE)
df <- data.frame(x,y,z)
cor(df)
library(psych)
phi(df)
Thank you,
Kumar Mainali
Postdoctoral Associate
Department of Biology
University of Maryland
?
[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Hi Jim, That solves my problem. Than you. -- Kumar ? Postdoctoral Associate Fagan Lab, Department of Biology University of Maryland
On Tue, Apr 21, 2015 at 5:31 PM, Jim Lemon <drjimlemon at gmail.com> wrote:
HI Kumar,
A simple way is:
phimat<-function(x) {
xcol<-dim(x)[2]
newx<-matrix(NA,nrow=xcol,ncol=xcol)
for(i in 1:xcol) {
for(j in 1:xcol) newx[i,j]<-phi(table(x[,i],x[,j]))
}
rownames(newx)<-colnames(newx)<-colnames(x)
return(newx)
}
phimat(df)
Jim
On Wed, Apr 22, 2015 at 6:34 AM, Kumar Mainali <kpmainali at gmail.com>
wrote:
I want to calculate phi coefficient for every pair of the columns. Is
there
a way to generate a matrix like a correlation matrix? I know cor function
in the case below gives same answer as phi coefficient.
x <- sample(c(0,1), 10, replace=TRUE)
y <- sample(c(0,1), 10, replace=TRUE)
z <- sample(c(0,1), 10, replace=TRUE)
df <- data.frame(x,y,z)
cor(df)
library(psych)
phi(df)
Thank you,
Kumar Mainali
Postdoctoral Associate
Department of Biology
University of Maryland
?
[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.