【发布时间】:2020-11-24 22:31:13
【问题描述】:
我已经根据 @akrun 的 cmets 编辑了这个问题(谢谢!),意识到我没有准确地提出我的问题。
我很困惑为什么以下不返回数据表中最后一列的内容。
> dt <- data.table(A=c(10,10,10),B=c(20,20,20),C=c(30,30,30))
> dt[,ncol(dt)]
[1] 3
如果我使用with=F,它的行为与我预期的一样,将最后一列作为数据表返回
> dt[,ncol(dt),with=F]
C
1: 30
2: 30
3: 30
这将返回与dt[,3] 相同的结果,这是有道理的。但是为什么dt[,ncol(dt)] = dt[,3] 不是真的呢?来自?data.table,
当 j 是要选择的列名或位置的向量时(如在 data.frame 中)。不再需要使用 with=FALSE。
ncol(dt) 不是返回一个列位置向量,一个长度为 1 的向量吗?为什么dt[,ncol(dt)] 不返回最后一列的内容?
感谢您的帮助!
【问题讨论】:
标签: r datatable data.table