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