Leeren data.frame als element in Liste schreiben.
Verfasst: Do Okt 26, 2023 3:36 pm
Liebes Forum,
ich habe mal wieder ein scheinbar einfaches Problem für das mir die Lösung fehlt. Ich schreibe in einem loop (siehe code unten) einen pro iteration m erzeugten data.frame namens qf1_dataset_agg als element in eine liste namens tmp_lead. Der df qf1_dataset_agg wird vorher in in einem anderebn lopp erzeugt. Nun kommt es vor, dass zu einem bestimmten Monat (z.B. 6) kein qf1_dataset_agg df erzeugt wird, da keine Daten da sind. Dennoch brauche ich das Element (sagen wir 6) in tmp_lead, d.h. tmp_lead[[6]] muss existieren, aber eben als leerer df. Ich habe das unten mit der Zeile
tmp_lead[[m]] <- setNames(data.frame(matrix(ncol = 4, nrow = 0)), c("datetime", "par_id", "measured_value", "kdweight"))
versucht aber es klappt nicht. Es wird nicht der df als Listenelement geschrieben sondern jede einzelne Spalte.
Wass mache ich falsch.
Bin für jede Hilfe dankbar.
Viele Grüsse, Philipp
ich habe mal wieder ein scheinbar einfaches Problem für das mir die Lösung fehlt. Ich schreibe in einem loop (siehe code unten) einen pro iteration m erzeugten data.frame namens qf1_dataset_agg als element in eine liste namens tmp_lead. Der df qf1_dataset_agg wird vorher in in einem anderebn lopp erzeugt. Nun kommt es vor, dass zu einem bestimmten Monat (z.B. 6) kein qf1_dataset_agg df erzeugt wird, da keine Daten da sind. Dennoch brauche ich das Element (sagen wir 6) in tmp_lead, d.h. tmp_lead[[6]] muss existieren, aber eben als leerer df. Ich habe das unten mit der Zeile
tmp_lead[[m]] <- setNames(data.frame(matrix(ncol = 4, nrow = 0)), c("datetime", "par_id", "measured_value", "kdweight"))
versucht aber es klappt nicht. Es wird nicht der df als Listenelement geschrieben sondern jede einzelne Spalte.
Wass mache ich falsch.
Bin für jede Hilfe dankbar.
Viele Grüsse, Philipp
Code: Alles auswählen
for (i in 1:12) {
if(!exists("tmp_lead", envir = .GlobalEnv)) {
tmp_lead <<- list()
}
if (exists("qf1_dataset_agg")) {
tmp_lead[[m]] <<- qf1_dataset_agg
} else {
tmp_lead[[m]] <- setNames(data.frame(matrix(ncol = 4, nrow = 0)), c("datetime", "par_id", "measured_value", "kdweight"))
}
# lead_qf1 <- paste("tmp_lead_",m,sep="")
# assign(lead_qf1,qf1_dataset_agg,envir = .GlobalEnv)
saveRDS(tmp_lead, paste0(tmpdir,"/tmp_lead.Rds"))
cat("\n\n********************************************\n")
cat("Lead dataset 'tmp_lead' has been created for ",m,"-",y," for sensor",sensor,"for parameter",sheetname,"\n")
cat("********************************************\n\n")
}