函数调用不为R中的数据表对象返回任何内容

时间:2016-06-16 14:59:08

标签: r function return data.table

考虑这个数据框:

df <- data.frame(
id=c(1,2,3,2,2,1,1,4,5,3),
value=c("d1","d2","d3","d2","d2","d1","d1","d4","d5","d3"))

这个功能:

f_dummy <- function(df){
    dt<-data.table(df)
    dt[, `:=` (value = ifelse(duplicated(value), NA, value)), by = id]
    return(dt)
}

通过调用f_dummy(df),为什么函数不返回任何内容?如果您在全局环境中运行代码(在函数内部),dt具有正确的值。

dt<-data.table(df)
dt[, `:=` (value = ifelse(duplicated(value), NA, value)), by = id]

输出

# dt
    # id value
 # 1:  1    d1
 # 2:  2    d2
 # 3:  3    d3
 # 4:  2    NA
 # 5:  2    NA
 # 6:  1    NA
 # 7:  1    NA
 # 8:  4    d4
 # 9:  5    d5
# 10:  3    NA

0 个答案:

没有答案