r - 根据列标准以编程方式从 Data.table 中选择行
问题描述
我有一个关于如何data.table
根据列中的值以编程方式选择行的问题。
假设我有以下 Data.table
library(data.table)
DT <- data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
现在我想选择行y = 3 and v = 2
通常我可以使用下面的代码
> DT[y==3& v==2]
x y v
1: a 3 2
但在我的情况下,这样的选择标准本身就是一个变量,并且放在一个不同的DF
> DF = data.frame('1' = c('y', 'v'), '2' = c(3,2)); DF
X1 X2
1 y 3
2 v 2
在这种情况下,X2
上面的值会改变,偶数行也是可变的(即假设我有一个更大DT
的列,一些额外的行DF
可能会基于 的生成条件DF
)
有什么方法可以用来DF
以DT
编程方式选择行吗?
解决方案
另一个选项使用join
:
DT[structure(as.list(DF$X2), names=DF$X1), on=as.character(DF$X1)]
推荐阅读
- postgresql - Hasura 使用 SSL 证书进行 Postgres 连接
- python - python 3.6 aiohttp 很慢
- windows - 如何向上导航未知数量的文件夹,直到找到已知名称
- webpack - WebpackOptionsValidationError 无效配置 webpack(config)
- mysql - 如何在 iframe 中加载 blob
- r - 查找两个数值向量之间相同位置的所有差异的索引
- xcode - 如何为 MacOS 创建全局覆盖?
- c# - 如何修复代码以从 C# Web API 中的 SqlDataReader 返回完整列表而不是一行
- javascript - 警告:标签上的 prop `logout` 值无效
- npm - 您如何将来自节点模块的资产与您的 gulp 构建捆绑在一起?