中被修改後在第一次調用時不顯示,我修改了作爲參數給出的data.table的列。我注意到,如果我再嘗試調用該函數後立即顯示此data.table(我的意思是,僅僅通過它的名字),沒有任何反應,只有後續調用顯示錶:data.table在函數
DT <- data.table(colA=1:4, colB=4:1) # sample table
modcol <- function(dtIn){
dtIn[, colA:=NULL];
return(TRUE);
}
DT # display table before any changes:
# colA colB
#1: 1 4
#2: 2 3
#3: 3 2
#4: 4 1
modcol(DT) # run our function
#[1] TRUE
DT # silent!
DT # only second call display modified table
# colB
#1: 4
#2: 3
#3: 2
#4: 1
它只發生當我的函數返回一個值(無關緊要時,由return()
或invisible()
),並且僅當表內容被修改時(例如,如果不是刪除列而是更改列名稱 - 這種效果不會發生)。這種行爲並沒有給我帶來任何問題,但我仍然很好奇它爲什麼會發生。
你是對的,那是我的情況。我應該更好地查找標記爲重複的帖子。 –
由此造成的其他問題?或者只是它不打印結果? – skan