Seite 2 von 3
Re: werte aus for-schleife speichern
Verfasst: Mi Feb 06, 2019 4:18 pm
von jogo
Hallo jasi,
jasi hat geschrieben: Mi Feb 06, 2019 4:00 pm
die Schleife sollte pro Durchlauf (i) die Lasso-Cox-Regression für einen zuvor eingelesenen Datensatz berechnen. Pro Durchlauf soll mir R die coefficients (CoefficientenListe) und die Varibalen " active.coefficient, active.index und lambd.min" ausgeben. Das macht der Code auch und gibt mir in der Console pro Durchlauf alles an.
Du meinst Ausgaben per
print(), richtig?
Jedoch möchte ich mit dem letzten Befehl write.table, dass er mir für alle Durchläufe i alle Variablen (=alle pro Durchlauf) in einer Textdatei ausgibt.
Leider gibt er mir aber immer nur die Werte für den letzten Durchlauf aus. Das heißt er überschreibt alle Werte.
Wie bekomme ich das hin, dass ich alle Werte für jede Iteration mit write.table ausgespuckt bekomme?
write.table() ist eigentlich nicht das geeignete Mittel, um Daten aus einer schleife zu sammeln. Besser wäre ein
lapply(), um die Daten zu sammeln.
Ich bin regelrecht am verzweifeln
DarkwingDuck sagt: "Verzweifelte Situationen erfordern verzweifelte Maßnahmen"
Ich schaue mir das mal heute Abend genauer an und model den Code etwas um.
Gruß, Jörg
Re: werte aus for-schleife speichern
Verfasst: Mi Feb 06, 2019 4:24 pm
von bigben
jogo hat geschrieben: Mi Feb 06, 2019 4:18 pmIch bin regelrecht am verzweifeln
DarkwingDuck sagt: "Verzweifelte Situationen erfordernverzweifelte Maßnahmen"
Mehr zum Thema Verzweiflung im Statistikforum findet sich im Nachbarforum:
http://www.statistik-forum.de/nutzung-d ... t8026.html
Re: werte aus for-schleife speichern
Verfasst: Mi Feb 06, 2019 4:39 pm
von jasi
@Jörg
exakt mit der print() Funktion gibt er mir in der console das aus was ich möchte..
Ich glaube ich habe es hinbekommen, bin mir aber nicht so sicher, ob das die eleganteste Lösung ist. Immerhin bekomme ich endlich das raus was ich wollte.
Gerne lasse ich mich aber auch von einer schöneren Lösung inspirieren, um meinen Horizont bezüglich der R-Programmierung zu erweitern (@Jörg)
Danke euch beiden (append = TRUE hat geholfen)
Liebe Grüße
Jasi

Re: werte aus for-schleife speichern
Verfasst: Mi Feb 06, 2019 5:05 pm
von jogo
Bei mir darf der Code so aussehen:
Code: Alles auswählen
x_exp<-as.matrix(data[1:100,2:96])
y_exp<-Surv(data$timeDFS[1:100],data$statusDFS[1:100])
Fit <- function(i=0) {
fit <- glmnet::glmnet(x_exp,y_exp,family="cox", alpha=1)
t <- floor(runif(1, 1, 100)); print(paste0("ZV:", t))
set.seed(t)
cv.fit <- cv.glmnet(x_exp,y_exp,family="cox", alpha=1)
plot(cv.fit)
lambda.min <- cv.fit$lambda.min
coefficients <- coef(fit,s=cv.fit$lambda.min)
active.index <- which(coefficients!=0)
active.coefficients <- coefficients[active.index]
print(paste0(active.index))
list(lambda.min=lambda.min, Coeff=coefficients, aCoef=active.coefficients)
}
L <- lapply(0:3, Fit)
Vielleicht geht auch:
Gruß, Jörg
Re: werte aus for-schleife speichern
Verfasst: Mi Feb 06, 2019 5:26 pm
von jasi
Hi Jörg,
vielen Dank.
Aber die werte für alle durchläufe werden nicht in einer extra Datei geschrieben oder?
Bspw in eine Excel/ods oder txt Datei
Grüße
Re: werte aus for-schleife speichern
Verfasst: Mi Feb 06, 2019 5:32 pm
von jogo
Hallo jasi,
im Falle von
stehen die Werte in der Liste
L (genaugenommen eine Liste von Listen).
Es wird keine Datei geschrieben. Diese Variante ist etwas für den Fall, dass auch die weitere Verarbeitung in R geschehen soll.
Gruß, Jörg
Re: werte aus for-schleife speichern
Verfasst: Mi Feb 06, 2019 5:46 pm
von jasi
Okay, aber ich bräuchte die werte aus lapply am besten in einer ods-datei. Das habe ich soeben funktioniert, aber das haut nicht so ganz hin
Liebe Grüße
Jasí
Re: werte aus for-schleife speichern
Verfasst: Mi Feb 06, 2019 8:41 pm
von jogo
Hallo Jasí,
kannst Du bitte beschreiben, wie die Tabelle aussehen soll?
Dann bräuchten wir noch den output von
(Den output bitte in die nächste Nachricht kopieren.)
Ansonsten habe ich noch dies gefunden:
https://stackoverflow.com/questions/259 ... files-in-r
Gruß, Jörg
Re: werte aus for-schleife speichern
Verfasst: Do Feb 07, 2019 4:12 pm
von jasi
Hallo Jörg,
so soll mein Output aussehen: (Output bei einem durchlauf)
"active.index" "active.coefficients" "lambda.min"
"1" 2 0.0018481236483479 0.132361925365147
"2" 4 0.0153739698494634 0.132361925365147
"3" 9 9.43858351639273e-06 0.132361925365147
"4" 12 0.000479023848089405 0.132361925365147
"5" 36 6.42744020447423 0.132361925365147
"6" 63 6.71478470091944e-06 0.132361925365147
mit meinem Code bekomme ich das auch hin. Jedoch nur in einer Textdatei. Ich bräuchte den Output in einer ODS Datei
Liebe Grüße
Re: werte aus for-schleife speichern
Verfasst: Do Feb 07, 2019 4:26 pm
von bigben
Warum muss es ODS sein? OpenOffice kann doch bestimmt die Datei lesen, die Du da hast.
Ansonsten
https://cran.r-project.org/web/packages ... index.html
LG,
Bernhard