R语言:数据筛选match的使用详解

 更新时间:2021年04月22日 10:11:42   作者:刘永鑫Adam  
这篇文章主要介绍了R语言:数据筛选match的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

数据筛选是在分析中最常用的步骤,如微生物组分析中,你的OTU表、实验设计、物种注释之间都要不断筛选,来进行数据对齐,或局部分析。

今天来详解一下此函数的用法。

match

match:匹配两个向量,返回x中存在的返回索引或TRUE、FALSE

match函数使用格式有如下两种:

第一种方便设置参数,返回x中元素在table中的位置

match(x, table, nomatch = NA_integer_, incomparables = NULL)

第二种简洁,返回x中每个元素在table中是否存在

x %in% table

参数详解

x: 向量, 要匹配的值;

table: 向量, 被匹配的值;

nomatch: 没匹配上的返回值, 必须是整数;

incomparables: 指定不能用来匹配的值.

match函数是一个完全匹配函数, 当两个元素类型不一样时, 如果进行类型转换后匹配得上的话, 则仍可匹配, 可看下例.

匹配上且返回位置

match(c(1, "TRUE"), c(T, 0, "1"))

返回3 1,即1位于表中的3号位,TRUE位于1号位,且T和TRUE可匹配成功

c(1, "TRUE", F) %in% c(T, 0, "1")

返回TRUE TRUE FALSE,表示每个元素在table中是否存在

pmatch

pmatch函数是一个部分匹配函数, 依次从x里面挑出元素, 对照table进行匹配, 若匹配上则剔除匹配上的值, 不再参与下次匹配, duplicate.ok可设置是否剔除; 对于某一个元素,

匹配一共分成三步:

1、如果可以完全匹配, 则认为匹配上了, 返回table中的位置;

2、不满足上述条件, 如果是唯一部分匹配, 则返回table中的位置;

3、不满足上述条件, 则认为没有值与其匹配上.

pmatch函数的格式

pmatch(x, table, nomatch = NA_integer_, duplicates.ok = FALSE)

x: 向量, 要匹配的值;

table: 向量, 被匹配的值;

nomatch: 没匹配上的返回值, 必须是整数;

duplicates.ok: table里面的元素是否可以适用多次.

默认不允许重复使用table中元素,返回位置1 2 3

pmatch(rep(1, 3), rep(1, 5))

允许重复,返回位置1 1 1

pmatch(rep(1, 3), rep(1, 5), duplicates.ok = TRUE)

补充:R语言实例-数据过滤

1、问题

一组数据,变量有40个,就是40列。

我要做数据筛选。

1.第一列中包含语段"a11","a12","b23"。请注意是包含,实际不存在“a11”,往往是“a1120”之类的信息

2.第二列中不包含“美国”、“日本”等信息。请注意,也是不包含,而不是不等于。

请问具体的R语言语句应该怎么写?

2、解决

假设楼主的数据为一数据框,名字为“testdat”,第一列名"a",第二列名"b",则过滤语句为:

result<-subset(testdat,grepl("a11|a12|b23",testdat$a) & !grepl("美国|日本",testdat$b))

3、注意

grep()函数返回的是匹配元素的索引,grepl()返回的是匹配或不匹配的逻辑值:

grep(value = FALSE) returns a vector of the indices of the elements of x that yielded a match (or not, for invert = TRUE. This will be an integer vector unless the input is a long vector
grepl returns a logical vector (match or not for each element of x).

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • R语言ggplot2图例标签、标题、顺序修改和删除操作实例

    R语言ggplot2图例标签、标题、顺序修改和删除操作实例

    R语言中画图时我们常常要设定标题,如果图片标题是固定则很容易操作,下面这篇文章主要给大家介绍了关于R语言ggplot2图例标签、标题、顺序修改和删除操作的相关资料,需要的朋友可以参考下
    2022-07-07
  • R语言实现线性回归的示例

    R语言实现线性回归的示例

    这篇文章主要介绍了R语言实现线性回归的示例,帮助大家更好的理解和学习使用R语言,感兴趣的朋友可以了解下
    2021-03-03
  • R语言关于多重回归知识点总结

    R语言关于多重回归知识点总结

    在本篇内容里小编给大家整理了一篇关于R语言关于多重回归知识点总结,有兴趣的朋友们可以学习下。
    2021-05-05
  • R语言-如何按照某一列分组求均值

    R语言-如何按照某一列分组求均值

    这篇文章主要介绍了R语言实现按照某一列分组求均值的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言列表和数据框的具体使用

    R语言列表和数据框的具体使用

    本文主要介绍了R语言列表和数据框的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • R语言安装VSCODE和环境配置

    R语言安装VSCODE和环境配置

    VSCode是一个跨平台的代码编辑器,支持多种编程语言和运行时环境,在VSCode中配置R语言环境,需要安装R插件和RDebugger插件,并配置R语言虚拟环境,配置过程中需要设置R执行路径、启动时的命令行参数和SessionWatcher等选项,安装Languageserver插件可以实现自动补齐
    2024-11-11
  • R语言 实现将factor转换成numeric方法

    R语言 实现将factor转换成numeric方法

    这篇文章主要介绍了R语言 实现将factor转换成numeric方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • R语言运算符知识点总结

    R语言运算符知识点总结

    在本篇文章里小编给大家整理的是一篇关于R语言运算符知识点总结内容,有兴趣的朋友们可以学习参考下。
    2021-03-03
  • R语言关于泊松回归知识点总结

    R语言关于泊松回归知识点总结

    在本篇文章里小编给大家分享的是一篇关于R语言关于泊松回归知识点总结内容,有兴趣的朋友们可以学习下。
    2021-05-05
  • R的ggplot2画图,去除灰色阴影和网格的方式

    R的ggplot2画图,去除灰色阴影和网格的方式

    这篇文章主要介绍了R的ggplot2画图,去除灰色阴影和网格的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论