在列上应用过滤器以删除行

时间:2017-04-10 22:07:49

标签: r

我是R的新手。如果条件不符合,我会有一个简单的问题。

我有一个CSV文件,一列是IP地址,问题不是所有的IP地址都要删除不是IP地址的行。

示例表My.Data$SIP

[O-9]{3}\.[O-9]{3}\.[O-9]{3}\.

因此,要删除dplyr中没有{{1}}

的任何内容

我迷路了,我正在使用{{1}}

谢谢,

2 个答案:

答案 0 :(得分:0)

nilfilter一起使用。我在这里假设IP地址的模式是“数字加点3次,然后是数字”。

grepl

答案 1 :(得分:0)

看起来您已经熟悉正则表达式,因此您可以执行以下操作:

hits = grepl(pattern = "[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}", x = My.Data$SIP)
My.Data2 <- My.Data[hits,]

基本上,这只是一个逻辑向量,表明数据框的那一列是否与正则表达式匹配。然后,我们根据该向量对数据进行子集化。