2016-08-13 20 views
0

Ich versuche paarweise Pearson Korrelationskoeffizienten und Signifikanz (p-Wert) zwischen zwei Gruppen von jeweils 6 Spalten zu bestimmen.Pearson Korrelation (cor.test) mit spezifischen Spalten einer Datenmatrix

Table

Ich verwende das folgende Skript:

output <- matrix(dim(data2)[1]*4,dim(data2)[1],4) 
for (i in dim(data)[1]){ 
    r<-cor.test(data[i,c(2:7)],data[i,c(9:14)],method="pearson") 
    output[i,3]<-r$p.value 
    output[i,4]<-r$estimate 
    output[i,1]<-data[,1] # target geneID 
    output[i,2]<-data[i,8] # miRNAID 
} 
colnames(output) <- c("geneID","miRNAID","p-val","corr") 
head(output) 

Aber ich habe Problem mit dem Vektortyp in Datenmatrix

enter image description here

Ich würde Vielen Dank für Ihre Eingaben bezüglich des Problems.

Dank V

+3

Der Fehler msg ist ziemlich erklärend - 'cor.test' funktioniert nur auf Vektoren. Sie senden stattdessen Datenrahmen, also funktioniert es nicht. Sehen Sie sich das [corrr-Paket] (https://cran.rstudio.com/web/packages/corrr/index.html) an, um praktische Möglichkeiten zum Berechnen von Korrelationen zu erhalten – Ben

Antwort

0

Ich frage mich, wenn Sie dies tun wollen:

gene<-c("gene.17472635","gene.17436226","gene.17424189") 
gene.C1<-c(216.22244180,0.04166939,29.58526377) 
gene.C2<-c(210.4407513,0.6071574,24.684428) 
gene.C3<-c(153.9317645,0.8830194,19.8798697) 
gene.S1<-c(156.23494974,2.308891,23.345456) 
gene.S2<-c(128.602680,4.568860,12.725349) 
gene.S3<-c(52.928491,6.04392,7.174450) 

data<-as.matrix(cbind(gene.C1,gene.C2,gene.C3,gene.S1,gene.S2,gene.S3)) 
cols<-t(combn(1:6,2)) 

gene_data_pval<-apply(cols , 1 , function(x) cor.test(data[,x[1]] , data[,x[2]],method="pearson")$p.value) 
gene_data_estimate<-apply(cols , 1 , function(x) cor.test(data[,x[1]] , data[,x[2]],method="pearson")$estimate) 
result1<-cbind(as.matrix(gene_data_pval),as.matrix(gene_data_estimate)) 
colnames(result1)<-c("p-val","est") 

Ich bin nicht sicher, ob Sie dieses oder etwas anderes wollen, also nur die Gendaten, aber der Code sein kann leicht für die mri one übernommen.

Anmerkung: Sie können einen Vektor von IDs nach den Kombinationen erstellen.

Verwandte Themen