hits <- vapply(titles,
           FUN = grepl,
           FUN.VALUE = logical(length(pass_names)),
           pass_names)
titles是带有标题的 vector ,例如"mr"pass_names是名称列表。

2个问题。
  • 我不理解结果矩阵命中
  • 我不明白为什么最后一行是pass_names,也不知道我对这四个参数有什么了解。在?vapply下,它指定了x,FUNFUN.VALUE,但是我无法弄清楚应该如何在其中列出pass_names

  • 我在网上看了一下,找不到答案,所以我希望这也会对其他人有所帮助。预先感谢您的回答,是的,我是初学者。

    额外信息:这个问题使用R中的titanic包,pass_names只是titanic$Nametitles只是paste(",", c("Mr\\.", "Master", "Don", "Rev", "Dr\\.", "Major", "Sir", "Col", "Capt", "Jonkheer"))

    最佳答案

    你有点困惑是对的。

    您问题中的vapply代码块等效于:

    hits <- vapply(titles,
                   FUN = function(x) grepl(x, pass_names),
                   FUN.VALUE = logical(length(pass_names)))
    
    vapply接受...参数,该参数接受所提供的参数。如果未命名参数(请参见@Roland的注释),则...位置中的第n个参数将传递给FUN的第n + 1个参数(FUN的第一个参数是X,即本例中的titles)。

    所得矩阵的行数与titanic中的行数相同,并且有10列,即titles的长度。如果第[i, j]个第TRUEi中的pass_names第一个j正则表达式匹配,则第titles个条目为FALSE,如果不匹配。

    关于r - 由内部使用grepl的vapply函数混淆(datacamp类(class)的一部分),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48768642/

    10-12 17:12