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"