You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R data.table查询时,如何获取匹配观测的行号?

在data.table中获取匹配行的行号(针对House Prices数据集)

刚好碰到过类似的需求,我来给你说两种简单的解决办法:

方法1:只获取匹配的行号(用which=TRUE参数)

如果你的需求仅仅是拿到这些行的索引,直接把which=TRUE作为参数加到查询的末尾就行——data.table的语法允许在i,j之后附加这类控制参数:

combined_df[is.na(GarageArea), which = TRUE]

执行后会直接返回一个包含匹配行号的向量,比如假设那行是第15行,就会输出[1] 15。

方法2:同时获取行号和指定列的数据(用.I)

要是你想在返回结果里同时看到行号和garage_num_vars对应的列数据,就需要在j的部分把行号(用.I表示当前行的索引)和目标列一起返回:

  • 如果你已经明确知道列名,可以直接写:
combined_df[is.na(GarageArea), .(RowNum = .I, GarageYrBlt, GarageCars, GarageArea)]
  • 如果你想用预定义的garage_num_vars变量来指定列,这样写更灵活:
combined_df[is.na(GarageArea), c(.("RowNum" = .I), mget(garage_num_vars))]

这样返回的结果就会多一列RowNum,显示该行在原数据表中的实际行号,完美匹配你要的输出格式。

补充说明下:你原来的查询没有返回行号,是因为data.table默认只返回j参数指定的列,行号属于元数据,需要显式通过which=TRUE或.I来获取~

内容的提问来源于stack exchange,提问作者Fiboniz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:14:46