Ich bin unerfahren mit I in R und hoffe, einen Prozess zu beschleunigen, während ich einige Analyse in einer Website einführe.kann ich den Iterationsprozess in R beschleunigen?
Ich fand ein sehr nützliches Tutorial, das mir erlaubt, durch eine Matrix zu iterieren, die Kriteriendaten über einem bestimmten Schwellenwert (> 0,01) auszuwählen und dann mit diesen Werten schließlich drei Vektoren: "source, target und corr" zu durchdringen Mache einen gut organisierten Datenrahmen.
source=c()
target=c()
corr<-c()
g1<-rownames(adj_mat)[1:dim(adj_mat)[1]]
g2<-g1
for(gene in g1){
for(gen in g2){
if(adj_mat[gene,gen]>0.01){
source<-c(source,gene)
target<-c(target,gen)
corr<-c(corr,adj_mat[gene,gen])
}
}
}
network<-data.frame(source,target,corr)
Während dies für kleine Matrizen der Dimensionen 1000 ist sehr gut, 500, dauert es eine frustrierende viel Zeit mit denen von Dimensionen 10000, 700 ...
Die Matrix aus einer Datei kommt, dass wird jedes Mal auf die Website hochgeladen und gelesen, so dass ich die 'Quelle usw.' nicht anpassen kann Objektgrößen auf die Größe der Matrix, da jede neu hochgeladene Datei eine andere Größe hat.
Kann mir jemand sagen, ob es eine effizientere Möglichkeit gibt, dies in R zu tun?
Was ist die Variable "m"? Ich empfehle, einen Index für die Iteration zu verwenden ('für (i in 1: nrow (adj_mat))') und, wie @Paul Hiemstra darauf hinwies, vorzuordnen. Z.B.: source <- Zeichen (length = nrow (adj_mat)) '. – sebastianmm
Entschuldigung, ich habe diesen Fehler –