美文网首页R语言
R语言学习难点——match函数

R语言学习难点——match函数

作者: Xinli_5d16 | 来源:发表于2021-04-17 23:01 被阅读0次

    From:生信技能树 and R

    match函数

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

    意思是:向量x在向量table中排第几位,没有匹配返回为NA,返回不能匹配的向量:null

    各个参数的意义:

    x 表示 向量or空值,它是用来比较的。

    table 表示向量,它用来跟x比较。

    nomatch 返回没有匹配的向量,它会强制转换为整数

    incomparables 返回不能匹配的向量

    例题(1)

    > x <- c("A","B","C","D","E")
    > y <- c("B","D","E","A","C")
    > match(x,y)  # x在y中的顺序,返回的是下标。
    [1] 4 1 5 2 3
    

    例题(2)

    >  match(c(1,2,3),c(2,3,6)) 
    [1] NA  1  2 #1在,后的向量中不能匹配,所以返回NA。
    

    例题(3)

    就想看看各个参数的意义

    >  x <- c("A","B","C","D","E","G")
    > y <- c("B","D","E","A","C","H")
    > match(x,y)
    [1]  4  1  5  2  3 NA
    > match(x,y,T,T)
    [1] 4 1 5 2 3 1
    > match(x,y,,T)
    [1]  4  1  5  2  3 NA
    > match(x,y,T)
    [1] 4 1 5 2 3 1
    
    > match(c("a","b","d","y"),c(1,2,3))
    [1] NA NA NA NA  #两个向量数据类型不一致
    > match(c("a","b","d","y"),c(1,2,3),nomatch = T,incomparables = T)
    [1] 1 1 1 1  # 两个向量数据类型不一致,会发生强制转化,但是nomatch的参数被我改成了T,则输出整数为T???
    > match(c("a","b","d","y"),c(1,2,3),nomatch = T,incomparables = NULL)
    [1] 1 1 1 1 # ???
    > match(c("a","b","d","y"),c(1,2,3),incomparables = NULL)
    [1] NA NA NA NA  
    > match(c("a","b","d","y"),c(1,2,3),incomparables =T)
    [1] NA NA NA NA
    

    例题4

    >   match(c(1, "TRUE"), c(T, 0, "1"))
    [1] 3 1 # 两个向量数据类型不一致,会发生转换。
    

    例题5,加上赋值

    load("E:/STDYT/firsttest/01-get_start/matchtest.Rdata") 
    
    n=match(colnames(y),x$file_name) # 先根据y调整x_file_names的顺序,重新排序。
    
    n
    x = x[n,] #取子集
    x$file_name # 看x file names的顺序
    colnames(y) #看y的colnames
    identical(x$file_name,colnames(y)) # 判断两者是否一样,ture,顺序、数据类型、数据结构都是一致。
    colnames(y)=x$ID # 取子集
    

    相关文章

      网友评论

        本文标题:R语言学习难点——match函数

        本文链接:https://www.haomeiwen.com/subject/vyoplltx.html