繁体   English   中英

获取所有行,其中特定值的一行与正则表达式匹配

[英]Get all rows where one row for a particular value matches regex

我不太确定如何在标题中加上措辞,但是可以。

我有一个数据集如下

HNum       Grade
1234       LGD
1234       NDBE
1234       NDBE
5678       NDBE
5678       HGD
9765       LGD
7556       LGD
7556       NDBE

如果一行中包含LGD,我想获取与之关联的HNum的所有行,因此输出为:

HNum       Grade
1234       LGD
1234       NDBE
1234       NDBE
9765       LGD
7556       LGD
7556       NDBE

我真的不知道该怎么做,因为我猜这将取决于在Grade中匹配一行,获取HNum,然后重新添加原始数据集以获取具有该HNum的行。

我可以做grep之类的事情:

LGDSubset <- unique(df[grep("LGD", df$Grade,perl=TRUE), ])
HNumLGD<-as.vector(LGDSubset$HNum)

这应该给我一个独特的HNum的向量

但是我不知道该怎么做然后遍历此向量,并基于每个HNum从原始数据帧中拉出所有行

我们可以通过Grade包含"LGD"时出现的HNum值来对df进行子集化:

df[df$HNum %in% df$HNum[grep("LGD",df$Grade)],] 
#  HNum Grade
#1 1234   LGD
#2 1234  NDBE
#3 1234  NDBE
#6 9765   LGD
#7 7556   LGD
#8 7556  NDBE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM