Für ein Shiny-Projekt verwende ich globale Variablen. Ich mache ständig den Fehler mit < - wo ich < < - verwenden sollte. Was aber verrückt ist, ist, dass R keinen Fehler auslöst, wenn versucht wird, einer lokalen Variablen zuzuweisen, die nicht existiert, wenn diese Variable in der globalen Umgebung existiert.Fehlender Fehler beim lokalen Zuweisen einer Variablen, die nicht lokal existiert, aber global
Ist das ein Fehler oder gibt es einen Grund, warum die BBB $ BBB Zuweisung hier keinen Fehler wie die ccc $ ccc Zuweisung verursacht?
aaa <- list(aaa="old")
bbb <- list(bbb="old")
f = function(x){
aaa$aaa <<- x
bbb$bbb <- x
ccc$ccc <- x
}
f("new")
#Error in ccc$ccc <- x : object 'ccc' not found
aaa
#$aaa
#[1] "new"
bbb
#$bbb
#[1] "old"
ccc
#Error: object 'ccc' not found
Sie sagen also, dass für ccc $ ccc der Fehler von '* temp *' <- x; aber für bbb $ bbb, das ist kein fehler, weil es in der globalen umgebung gefunden wird? – 3D0G
In Shiny, wenn der Benutzer einige Daten auf einer Webseite eingibt, erhalte ich die Kontrolle innerhalb einer Funktion observeEvent() innerhalb einer server() -Funktion. Da ich die Daten speichern möchte, gibt es wirklich keine andere Wahl als sie einem globalen zuzuweisen und dann das globale in eine Datei zu speichern. Wenn das observeEvent() zurückgibt, geht es zurück zum Server() und ich verliere die Kontrolle. Es gibt also keinen Ort, an den ich zurückkehren könnte (the_data). – 3D0G
Ja zum ersten Kommentar. Ich benutze nicht glänzend, aber ich bezweifle, dass es schlechte Programmierpraktiken erfordert. – Roland