i中的data.table子集,列号

时间:2017-03-30 18:31:42

标签: r data.table

是否可以在i中对data.table进行子集化,而不是按名称引用该列(例如按数字/位置)?

示例:

library(data.table)
dt <- data.table(A=1:18, Name=c('A','B','C'))
dt2 <- data.table(A=2:20, Username=c('A','B','C'))

#stuff happens and eventually I end up with either dt or dt2 copied to a final dt

#depending on which is there, I want to get only "A"s
final[Name=='A']
final[Username=='A']

但是我想要一种方法,尽管有不同的列名,我可以使用相同的调用对data.tables进行子集化。一个可能的解决方案是将每个dt的密钥设置为NameUsername,然后像这样设置子集:final['A']但是我想知道是否还有其他方法。

我无法更改列名,因为它们会进入闪亮应用中的表格。

1 个答案:

答案 0 :(得分:1)

如果这是基于位置,那么我们使用[[提取具有数字列索引的列并进行比较以获取逻辑向量并基于它对行进行子集

final[final[[2]]=="A"]