使用模式匹配从 data.table 中选择行

Select rows from a data.table using pattern match

提问人:gicanzo 提问时间:11/15/2023 最后编辑:Ed Mortongicanzo 更新时间:11/16/2023 访问量:35

问:

我有一个data.table,其中包含以下类型的字符串列

dt <- as.data.table(c("IT", "IT01", "IT02", "ITAA"))

我只想选择恰好包含两个字母字符后跟两个数字的行。因此,我想从上表中过滤“IT01”和“IT02”。我试过了:

dt <- dt[V1 %like% "[:alpha:]{2}[:digit:]{2}"]

但它不选择任何行。我做错了什么?

r 数据表

评论

1赞 zx8754 11/15/2023
使用双方括号:dt[V1 %like% "^[[:alpha:]]{2}[[:digit:]]{2}$", ]
0赞 gicanzo 11/15/2023
那行得通,谢谢!双方括号是什么意思?我想你可以把这个作为答案

答:

0赞 zx8754 11/16/2023 #1

我们需要双方括号:

dt[V1 %like% "^[[:alpha:]]{2}[[:digit:]]{2}$", ]