检索编号为1的所有行

时间:2016-07-27 09:24:34

标签: r dataframe grep

可能非常简单,但我正在尝试检索包含数字1的所有行。我尝试了grep但没有成功,看起来我真的很愚蠢使用正则表达式。

我有一个如下所示的数据框:

t = data.frame(C1 = c(1,2,23,26,45), C2 = c("Plate1","Plate1","Plate2","Plate2","Plate4"), C3 = c("A1","A2","B10","C11","D1"), C4 = c(3,6,7,1,2))

t

  C1     C2  C3 C4
1  1 Plate1  A1  3
2  2 Plate1  A2  6
3 23 Plate2 B10  7
4 26 Plate2 C11  1
5 45 Plate4  D1  2  

我想检索C3包含1但不包含10或11的行,这意味着第1行和第5行包含A1和D1。

所以最终的结果是:

  C1     C2  C3 C4
1  1 Plate1  A1  3
5 45 Plate4  D1  2 

提前致谢。

1 个答案:

答案 0 :(得分:1)

我们可以使用grep。匹配字符串开头的一个或多个字母(大写[A-Z]+)的模式(^),后跟列中字符串末尾的数字1($) #39; C3'并使用它来对行进行子集化。

t[grep("^[A-Z]+1$", t$C3),]
#  C1     C2 C3 C4
#1  1 Plate1 A1  3
#5 45 Plate4 D1  2