给定一个函数
testf <- function(dt){
dt[, t := seq(1:nrow(dt))]
return(dt)
}
和 data.table:
dt <- data.table(a=1, b=2)
当在此 data.table 上应用函数并且不将输出分配给变量时,由于某种原因我不明白没有生成可见的输出。
testf(dt)
#nothing
Hoewever,当采用相同的功能但在它之前使用打印功能时:
testf <- function(dt){
dt[, t := seq(1:nrow(dt))]
print(dt)
return(dt)
}
testd(dt)
a b t
1: 1 2 1
a b t
1: 1 2 1
然而,当将输出分配给变量时,输出实际上存储在该变量中,无论是否在函数中调用 print(( 函数:
t <- testf(dt)
View(t)
#Output visible
谁能解释一下这里出了什么问题?
我们需要在赋值后指定[]
testf <- function(dt){
dt[, t := seq(1:nrow(dt))][]
}
testf(dt)
# a b t
#1: 1 2 1