1. 程式人生 > 其它 >R語言中提取以指定字元開頭、或指定字元結尾的行

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"