获取data.table最后一列不起作用

问题描述:

我是R noob。所以我有一个名为a的变量的data.table。我试图一般地获得最后一列。它适用于指定第6列时,但它不适用于ncol(a)。这是为什么?获取data.table最后一列不起作用

class(a) 
[1] "data.table" "data.frame" 
a 
    permissions size month date timestamp  file 
1: drwxr-xr-x 8192 Oct 02  14:25 to_xpn 
2: drwxr-xr-x 8192 Oct 04  10:38 from_xpn 

ncol(a) 
[1] 6 

a[,6] 
     file 
1: to_xpn 
2: from_xpn 

a[,ncol(a)] 
[1] 6 
+1

参见['data.table' FAQ - 1.1(https://cran.r-project.org/web/packages/data.table/ vignettes/datatable-faq.html#j-num) – SymbolixAU

+1

尝试'a [,ncol(a),with = FALSE]' –

你只需要with = FALSE

library(data.table) 

iris.dt <- data.table(iris) 

iris.dt[, ncol(iris.dt), with = FALSE] 


#  Species 
# 1: setosa 
# 2: setosa 
# 3: setosa 
# 4: setosa 
# 5: setosa 
# ---   
# 146: virginica 
# 147: virginica 
# 148: virginica 
# 149: virginica 
# 150: virginica