0
對於Shiny項目,我使用的是全局變量。我經常發生使用<的錯誤 - 我應該使用< < - 。但是,瘋狂的是,當R嘗試分配一個不存在的局部變量時,如果該變量確實存在於全局環境中,則不會引發錯誤。本地分配給一個本地不存在的變量,但全局分配時丟失錯誤
這是一個錯誤還是有一些原因在這裏bbb $ bbb賦值不會像ccc $ ccc賦值那樣拋出一個錯誤?
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
所以你說ccc $ ccc錯誤是由'* temp *'< - x引發的;但對於bbb $ bbb這不是一個錯誤,因爲它是在全球環境中找到的? – 3D0G
在Shiny中,當用戶在網頁上輸入一些數據時,我在server()函數內的observeEvent()函數內部獲得控件。由於我想保存數據,因此實際上別無選擇,只能將其分配給全局,然後將全局保存爲文件。當observeEvent()返回它返回到server()並且我失去控制時,所以無處可返回(the_data)。 – 3D0G
是的第一條評論。我不使用光澤,但我懷疑它需要糟糕的編程習慣。 – Roland