【问题标题】:Subset a data.table based on column value where column is selected based on sequence [duplicate]根据列值对 data.table 进行子集,其中列是根据序列选择的[重复]
【发布时间】:2019-11-16 08:54:13
【问题描述】:

假设我有以下data.table

library(data.table)
DT <- data.table(x=sample(letters, 1e6, TRUE), y=rnorm(1e6), v=runif(1e6))

现在我想根据等于letters[1:2] 的第一列值对DT 进行子集化

如果 按名称选择列,那么这是直截了当的 -

DT[x %in% letters[1:2]]

但是我想按位置选择列,即第一列或第四列等

下面的代码不起作用

DT[1 %in% letters[1:2]]

任何关于根据位置选择列的正确语法的指针都会有所帮助

【问题讨论】:

标签: r data.table


【解决方案1】:

你可以这样做:

DT[DT[[1]] %in% letters[1:2]]

【讨论】:

  • 您可能希望将%chin% 用于字符数据类型
猜你喜欢
  • 1970-01-01
  • 2013-07-26
  • 2020-03-30
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
  • 2020-06-02
  • 2020-08-19
相关资源
最近更新 更多