我需要对包含 <three digit number>
的行进行子集化
我写了
foo <- grepl("<^[0-9]{3}$>", log1[,2])
others <- log1[!foo,]
但我不确定如何使用正则表达式......只是使用了备忘单和谷歌。我认为&lt;和&gt;人物正在抛弃它。
答案 0 :(得分:6)
答案 1 :(得分:3)
^
和$
符号分别表示字符串的开头和结尾。你不应该在它们之前或之后匹配任何东西。
如果您想要包含该模式的行,则根本不应使用锚点。您应该使用此功能:<[0-9]{3}>
(或将其缩短为<\\d{3}>
)
答案 2 :(得分:1)
仅仅为了子孙后代,我想我会为OP所陈述的问题做出我认为隐含答案的贡献。
似乎OP想要排除第二列包含3位整数的数据帧的行。使用'nchar'函数来计算每个数字中的字符数可以很容易地完成,如下所示:
others <- log1[nchar(log1[,2])!=3,]
我们只是创建一个数组,其中包含第2列每行中包含的字符数,如果数字不等于3,则选择该行。