R語言中提取以指定字元開頭、或指定字元結尾的行
阿新 • • 發佈:2022-05-09
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 123ee4 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"