在 X[Y, j] 合并中,如何访问具有重复列名的 Y 列?

5
假设我有以下数据:
set.seed(1)
DT <- data.table(id=rep(1:3,each=3),y=1997L+sample(1:9,9))
DT2<- data.table(id=1:3,y=1997L+sample(1:3,3))

我想在与DT合并后使用DT2 $ y。我发现此列在合并后命名为y.1

setkey(DT,id)
names(DT[DT2])
# [1] "id"  "y"   "y.1"
DT[DT2][,y.1]
# [1] 1998 1998 1998 2000 2000 2000 1999 1999 1999

然而,在j中我不能使用那个名称:

DT[DT2,y.1]
# Error in `[.data.table`(DT, DT2, y.1) : object 'y.1' not found

这里应该使用什么秘密前缀或后缀?
1个回答

6

您可以使用

DT[DT2, i.y]

如果你发现输出结果与DT[DT2][, y.1]不同,那么请查看这个帖子,了解更多信息。


啊,谢谢。就我使用的情况而言,这是期望/所需的行为。虽然我记得以前看到过.1i.,但在文档(?"[.data.table" data.table 1.8.8)中并没有找到它们的信息。我想知道为什么它们不都被命名为i.... - Frank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接