library(data.table)
DT = data.table(iris)
虹膜数据作为 data.table
str(DT)
> Classes ‘data.table’ and 'data.frame': 150 obs. of 5 variables:
> $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
> $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
> $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
> $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
> $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1
> - attr(*, ".internal.selfref")=<externalptr>
这只是一个简单的函数,通过删除因子列来添加 iris 的数字部分。
myfun = function(dt){
dt[,Species:=NULL]
return(sum(dt))
}
运行函数
myfun(DT)
> [1] 2078.7
现在 DT 缺少全局环境中的 Species 列
str(DT)
> Classes ‘data.table’ and 'data.frame': 150 obs. of 4 variables:
> $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
> $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
> $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
> $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
> - attr(*, ".internal.selfref")=<externalptr>