[英]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.