首页 > 解决方案 > 使用一行中的两个或多个值从 data.table 中查找第 N 行

问题描述

我有一个大型数据集,想找到多列等于特定值的行。

#Example##
Constants <- data.frame(Functional_Class_Code=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
F_Code=c(1,3,0,0,0,4,5,6,7,0,1,2,0,3,0,4,5,6,7),
Urban_Rural=c("R","R","0","0","0","R","R","R","R","0","U ","U ","0","U ","0","U ","U ","U ","U "),
g=c(0.0127,0.0202,0,0,0,0.0153,0.0156,0.0161,0.0185,0,0.0087,0.0129,0,0.0118,0,0.0112,0.0154,0.0154,0.0229))

##find the row where...
UR = "R"
FC = 5

##I tried this
y<-c(Urban_Rural=UR, F_Code=FC)
Constants[1,]==y

我知道第 7 行包含 Urban_Rural = 5 && F_Code = 5 的组合

标签: rdata.table

解决方案


Constants <- data.frame(Functional_Class_Code=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19),
                        F_Code=c(1,3,0,0,0,4,5,6,7,0,1,2,0,3,0,4,5,6,7),
                        Urban_Rural=trimws(c("R","R","0","0","0","R","R","R","R","0","U ","U ","0","U ","0","U ","U ","U ","U ")),
                        g=c(0.0127,0.0202,0,0,0,0.0153,0.0156,0.0161,0.0185,0,0.0087,0.0129,0,0.0118,0,0.0112,0.0154,0.0154,0.0229))

y <- which(Constants$Urban_Rural == "R" & Constants$F_Code == 5)

Constants[y,]
  Functional_Class_Code F_Code Urban_Rural      g
7                     7      5           R 0.0156

推荐阅读