2016-05-11 3 views
-1

Ich versuche, eine for-Schleife in eine Funktion zu laufen, aber einen Fehler:for-Schleife in der Funktion gibt: variable Längen unterscheiden

for(i in colnames(test)){ 
    coxph(Surv(Time, Status)~ i, data=as.data.frame(test)) 
} 

> head(colnames(test)) 
[1] "hsa_let_7a_5p" "hsa_let_7b_3p" "hsa_let_7b_5p" "hsa_let_7c_5p" "hsa_let_7d_3p" "hsa_let_7d_5p" 

Error in model.frame.default(formula = Surv(Time, Status) ~ i, data = as.data.frame(test)) : 
    variable lengths differ (found for 'i') 

Der Ausgang sein soll:

> coxph(Surv(Time, Status)~ hsa_let_7b_5p, data=as.data.frame(test)) 
Call: 
coxph(formula = Surv(Time, Status) ~ hsa_let_7b_5p, data = as.data.frame(test)) 


       coef exp(coef) se(coef) z p 
hsa_let_7b_5p 0.169  1.184 0.173 0.98 0.33 

Likelihood ratio test=0.94 on 1 df, p=0.333 
n= 91, number of events= 45 
+0

verwendet, hat diese wahrscheinlich mit Funktionsargumente in 'coxph' zu tun. Was hast du bisher gesehen? – giraffehere

+0

Sie können auch die 'coxph'-Funktion in' print' verpacken und 'i' in jeder Iteration drucken, um zu sehen, wann Ihre Schleife stirbt. Es wäre hilfreich, Beispieldaten zu haben, die Ihr Problem reproduzieren ... – lmo

Antwort

1

Sie versuchen können as.formula() und print() das Ergebnis

for(i in colnames(test)){ 
    print(coxph(as.formula(paste0("Surv(Time, Status)~", i)), data=as.data.frame(test))) 
} 
+0

keine Fehlermeldung, aber wo ist die Ausgabe gespeichert? – user2300940

+0

Es gibt nichts aus. – user2300940

+0

sehe meine Bearbeitung. Sie können das Ergebnis nach Bedarf in der Schleife – HubertL

Verwandte Themen