我们这里的用到的是R自带的数据集iris
head(iris)
1 指定值
iris[iris$Species=="setosa",]
2 grep
iris[grep(pattern="setosa",iris$Species),]
gerp函数的使用如下:
grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE, fixed = FALSE, useBytes = FALSE, invert = FALSE)
各参数的含义如下:
- pattern: 字符串类型,正则表达式,指定搜索模式,当将fixed参数设置为TRUE时,也可以是一个待搜索的字符串。
- x : 字符串向量,用于被搜索的字符串。
- ignore.case: 是否忽略大小写。为FALSE时,不忽略大小写;为TRUE时,忽略大小写。
- perl: 用于指定是否Perl兼容的正则表达式。
- value:逻辑值,为FALSE时,grep返回搜索结果的位置信息,为TRUE时,返回结果位置的值。
- fixed:逻辑值,为TRUE时,按pattern指定的字符串进行原样搜索,且会忽略产生冲突的参数设置。
- useBytes:逻辑值,如果为真,则按字节进行匹配,而不是按字符进行匹配。
- invert:逻辑值,如果为TRUE,则返回未匹配项的索引或值。
3 which
library(tidyverse)
iris[which(iris$Species=="setosa"),]
4 subset
subset(iris,iris$Species=="setosa")
subset函数可以从向量、矩阵、数据框中提取子集
使用如下:
subset(x, subset, select, drop = FALSE, ...)
- x是数据框
- subset: 指示要保留的元素或行的逻辑表达式,将缺少的值视为false。
- select: 表达式,指示要从数据帧中选择的列,“-”表示删除列。
- drop: 传递给"["索引操作符。