Ich habe eine Liste, die verschiedene Gruppen enthalten und jede Gruppe hat ein Element; zum BeispielErstellen Sie ein Paar Listenelement in r
Jetzt möchte ich alle möglichen Paare von Elementen aus der Gruppe 'A', 'B' und so weiter. Es gibt sieben Elemente in "A", also die Paare, die ich will, ist wie (Krebs, Diabetes), (Krebs, Alzheimer), (Krebs, Karzinom), (Krebs, Lungenkrankheit), (Krebs, Adenom), (Krebs, Hyperplasie) für Diabetes und alle Elemente der Gruppe A gleich wie für die Gruppen B und E. Kurz gesagt, ein Paar von jedem Element mit jedem anderen Element dieser Gruppe. Ich habe versucht, den folgenden Code, aber es gibt mir nicht die richtige Antwort gab es die Liste mit einigen fehlenden Element.
Code:
spt <- split(lst, lst$name)# split the list into group
dis_name <- lapply(1:length(spt), function(x) as.character(spt[[x]][[2]]))
pr <- list()
for(k in 1:length(dis_name))
{
grp <- dis_name[[k]]
l <- length(grp)
for(m in 1:l)
{
for(p in 1:l)
{
pr[m][p] <- list(NULL)
cm <- paste(grp[m],",", grp[p])
pr[[m]][[p]] <- list(cm = cm)
}
}
}
pr
Was mit diesem ist falsch, ich kann nicht verstehen. Dies ist ein kleines Beispiel für meine Daten, ich habe riesige Daten, also wenn ich es parallel ausführen möchte, als, wie es mit Paket foreach
und doSNOW
ausgeführt wird. Bitte helfen Sie, jede Hilfe wird geschätzt. Vielen Dank.
My gewünschte Ausgabe ist:
[[1]]
[[1]][[2]]
"cancer , diabetes"
[[1]][[3]]
"cancer , Alzheimer's"
[[1]][[4]]
"cancer , Carcinoma"
[[1]][[5]]
"cancer , Lung Diseases"
[[1]][[6]]
"cancer , Adenoma"
[[1]][[7]]
"cancer , Hyperplasia"
[[2]]
[[2]][[1]]
"diabets , cancer"
[[2]][[3]]
"diabetes , Alzheimer's"
.
.
.
[[2]][[7]]
"diabetes , Hyperplasia"
[[3]]
[[3]][[1]]
"Alzheimer's , cancer"
.
.
.
[[3]][[7]]
"Alzheimer's , Hyperplasia"
[[4]]
[[4]][[1]]
.
.
.
[[4]][[7]]
[[5]]
[[5]][[1]]
.
.
.
[[5]][[7]]
[[6]]
[[6]][[1]]
.
.
.
[[7]]
[[7]][[1]]
.
.
.
gleiche gilt für die Elemente der 'B' und 'C'
[[2]]
[[1]]
[[1]][[2]]
"Cortical , Aortic Aneurysm"
[[1]][[3]]
"Cortical , Asthma"
[[2]]
[[2]][[1]]
"Aortic Aneurysm , Cortical"
[[2]][[3]]
"Aortic Aneurysm , Asthma"
[[3]]
[[3]][[1]]
.
.
[[3]][[2]]
[[3]]
[[1]]
[[1]][[2]]
"Pneumonia , Asthma"
[[2]]
[[2]][[1]]
"Asthma , Pneumonia"
My Ausgang ist wie die aus, aber das Paar, in dem die Namen Reste gleich, aber nur würde die Reihenfolge zu ändern sein wird als eine betrachtet sagen:
"Asthma , Pneumonia"
gleiche ist wie "Pneumonie, Asthma" so betrachteten es als ein Paar. Danke.
Hallo, hier habe ich den kleinen Teil meiner Daten gepostet, für die die unten angegebene Lösung nicht funktioniert Ich kann nicht verstehen, was falsch ist, weil das Beispiel, das ich vorher gegeben wurde, genauso wie meine echten Daten noch nicht war Arbeit und gab den Fehler bitte helfen. Ich habe jede Hilfe sehr geschätzt. Ich versuche den Fehler zu lösen, aber ich kann nicht.
sort_gene:
data.geneSymbol data.diseaseName
A2M Acute Kidney Injury
A2M Adenoma, Liver Cell
A2M Alzheimer Disease
A2M Carcinoma, Hepatocellular
A2M Colonic Neoplasms
A2M Lung Diseases
A2M Lung Neoplasms
A2M Nephrotic Syndrome
A4GALT Blood group antigen p
A4GALT Burkitt Lymphoma
A4GALT Hyperostosis, Cortical, Congenital
AAA1 Aortic Aneurysm, Familial Abdominal 1
AAA2 Aortic Aneurysm, Familial Abdominal 2
Error:Error in FUN(X[[i]], ...) : n < m
Bitte bringen Sie mich aus diesem heraus. Ich brauche wirklich Hilfe. Danke
Bitte senden Sie Ihre gewünschte Ausgabe. Suchst du nach etwas ähnlich wie 'lapply (split (lst $ name, lst $ grup), combn, 2)'? – nicola
Danke Nicola, ich habe meine gewünschte Ausgabe bearbeitet. –