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")
}