r - 在R中过滤数据帧

标签 r dplyr

下面您可以看到我的数据框。

df<-data.frame( 
                items=c("1 Food Item 1",
                "1.1 Food Item 2",
                "01.1.1 Food Item 3",
                "01.1.2 Food Item 4",
                "01.1.3 Food Item 5",
                "2 Food Item 6",
                "2.1 Food Item 7",
                "02.1.1 Food Item 8",
                "10 Food Item 9",
                "10.1 Food Item 10",
                "10.1.1 Food Item 11",
                "10.1.2 Food Item 12")
    )

df

df包含以两位三位四位不同数字开头的项目。现在我想过滤这个df,最终的输出应该是只有四位数字的项目:

"01.1.1 Food Item 3",
"01.1.2 Food Item 4",
"01.1.3 Food Item 5",
"02.1.1 Food Item 8",
"10.1.1 Food Item 11",
"10.1.2 Food Item 12"

有人可以帮我解决这个问题吗?

最佳答案

base R 中使用 subsetgrepl - 匹配 2 位数字的模式 (\\d{2}) 后跟一个点,然后是一个数字,再后跟一个点和另一个数字,后面是空格 (\\s+)

subset(df, grepl("^\\d{2}\\.\\d\\.\\d\\s+", items))

-输出

           items
3   01.1.1 Food Item 3
4   01.1.2 Food Item 4
5   01.1.3 Food Item 5
8   02.1.1 Food Item 8
11 10.1.1 Food Item 11
12 10.1.2 Food Item 12

关于r - 在R中过滤数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74173405/

相关文章:

r - 长转宽格式: keep row orders and use only part of row values for newly created column names

r - x 没有适用于 'tbl_vars' 的方法应用于类 "c(' double', 'numeric' ) 的对象”

按组删除特定行号/条件以下的行

r - 在多个候选中找到多个子串的最佳匹配

r - 通过 API 调用获取文件(R & 管道工)

r - 使用dplyr连接两个数据帧时可以替换NA吗?

r - summarise_at dplyr 多列

r - 使用 mutate 中的 distm 函数计算两点之间的距离

在 R 循环中重新编码变量

r - 在 ggplot2 条形图中显示显着性关系