中被修改后在第一次调用时不显示,我修改了作为参数给出的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