代码之家  ›  专栏  ›  技术社区  ›  Krisselack

pmatch函数的性质

  •  2
  • Krisselack  · 技术社区  · 7 年前

    我不理解内置函数的行为 P匹配 (部分字符串匹配)。

    pmatch("m",   c("mean", "median", "mode")) # returns NA instead of 1,2,3
    

    pmatch("m", "mean") # returns 1, as I would have expected. 
    

    有人能给我解释一下这种行为吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Sandipan Dey    7 年前

    nomatch :在不匹配或部分匹配的位置处返回的值。注意,它被强制为整数。

    这个

    pmatch("me",   c("mean", "median", "mode")) 
    [1] NA  # returns NA instead of 1,2 since multiple partial matches
    
    pmatch("mo",   c("mean", "median", "mode")) 
    [1] 3   # since single partial match
    
        2
  •  3
  •   smci    7 年前

    使用 grep 相反,NA对重复的行为 pmatch 真烦人

    grep("^m",   c("mean", "median", "mode"))
    [1] 1 2 3
    
    > grep("ed",   c("mean", "median", "mode"))
    [1] 2
    

    pmatch(x, table... 格雷普 只适用于第二个参数。所以呢 格雷普 无法获取模式向量。但你可以用 stringi ,否则 sapply .

    推荐文章