R语言中提取以指定字符开头、或指定字符结尾的行

 

1、提取以指定字符开头的行

复制代码
> a <- c("abc", "axy", "123", "axy", "mnp")
> b <- c("dse", "bcd", "ee4", "sdb", "345")
> c <- c("mcy", "873", "345", "egs", "dfe")
> dat <- data.frame(a, b, c)
> dat                                      ## 测试数据框
    a   b   c
1 abc dse mcy
2 axy bcd 873
3 123 ee4 345
4 axy sdb egs
5 mnp 345 dfe
> dat[grep("^a", dat[,1]),]               ## 提取第一列以a开头的行
    a   b   c
1 abc dse mcy
2 axy bcd 873
4 axy sdb egs
> dat[grep("^m", dat[,1]),]               ## 提取第一列以m开头的行
    a   b   c
5 mnp 345 dfe
复制代码

 

2、提取以指定字符结尾的行

复制代码
> a <- c("abc", "axy", "123", "axy", "mnp")
> b <- c("dse", "bcd", "ee4", "sdb", "345")
> c <- c("mcy", "873", "345", "egs", "dfe")
> dat <- data.frame(a, b, c)
> dat                                      ## 测试数据框
    a   b   c
1 abc dse mcy
2 axy bcd 873
3 123 ee4 345
4 axy sdb egs
5 mnp 345 dfe
> dat[grep("y$", dat[,1]),]                ## 提取第一列以y结尾的行
    a   b   c
2 axy bcd 873
4 axy sdb egs
> dat[grep("p$", dat[,1]),]                ## 提取第一列以p结尾的行
    a   b   c
5 mnp 345 dfe
> dat[grep("[cp]$", dat[,1]),]             ## 提取第一列以c或者p结尾的行
    a   b   c
1 abc dse mcy
5 mnp 345 dfe
复制代码

 

3、提取指定列以特定字符开头或者结尾的行

复制代码
> a <- c("abc", "axy", "123", "axy", "mnp")
> b <- c("dse", "bcd", "ee4", "sdb", "345")
> c <- c("mcy", "873", "345", "egs", "dfe")
> dat <- data.frame(a, b, c)
> dat
    a   b   c
1 abc dse mcy
2 axy bcd 873
3 123 ee4 345
4 axy sdb egs
5 mnp 345 dfe
> dat[grep("^e", dat[,2]),]                     ## 提取第二列中以e开头的行
    a   b   c
3 123 ee4 345
> dat[grep("^e", dat[,3]),]                     ## 提取第3列中以e开头的行
    a   b   c
4 axy sdb egs
> dat[grep("5$", dat[,2]),]
    a   b   c
5 mnp 345 dfe
> dat[grep("5$", dat[,3]),]
    a   b   c
3 123 ee4 345
复制代码

 

4、提取特定行中以指定字符开头的列

复制代码
> a <- c("abc", "axy", "123", "axy", "mnp")
> b <- c("dse", "bcd", "ee4", "sdb", "345")
> c <- c("mcy", "873", "345", "egs", "dfe")
> dat <- data.frame(a, b, c)
> dat
    a   b   c
1 abc dse mcy
2 axy bcd 873
3 123 ee4 345
4 axy sdb egs
5 mnp 345 dfe
> dat[,grep("^m",dat[1,])]                ## 提取第一行中以m开头的列
[1] "mcy" "873" "345" "egs" "dfe"
复制代码

 

posted @   小鲨鱼2018  阅读(7654)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-05-09 python中global关键字实现在函数内部对全局变量进行修改
2020-05-09 redhat7 配置Yun软件仓库
2020-05-09 《Linux就该这么学》学习笔记 04
点击右上角即可分享
微信分享提示