【问题标题】:Find the used method for R wrapper functions查找 R 包装函数的使用方法
【发布时间】:2020-02-01 18:19:10
【问题描述】:

我正在查看这个问题:What does useMethod mean here?

我正在尝试对 XML::read_xml 做同样的事情

read_xml
(ms <- methods("read_xml"))

输出是:

[1] read_xml.character*  read_xml.connection*
[3] read_xml.raw*        read_xml.response* 

我怎么知道要服用四个中的哪一个?更重要的是,use_methods("read_xml") 的调用是如何决定的?

【问题讨论】:

  • 感谢您提出的修改建议。问题不限于 read_xml 函数,可以向链接问题中的代码提出类似的问题。因此,如果有人有类似的问题,但功能不同,可能会更容易找到,...

标签: r


【解决方案1】:

你不需要采取任何四个。当您调用read_xml 时,函数会查看第一个参数(在本例中为 x)的类(例如,字符串、连接),并为该类调用函数。基本上,当你执行read_xml(x) 时,函数会调用read_xml.[class(x)](x)

如果参数有多个类,UseMethods 将循环遍历所有类,从第一个到最后一个,直到找到具有方法的类。某些函数可能还具有default 方法,如果没有找到其他更具体的方法,则使用该方法。 read_xml,如您所见,没有。如果您尝试将read_xml 与第一个参数(例如数字)一起使用,您将从UseMethod 收到此错误:

Error in UseMethod("read_xml") : 
  no applicable method for 'read_xml' applied to an object of class "c('double', 'numeric')"

如您链接到的问题中所述,您可以使用getAnywhere 查看特定类函数的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    相关资源
    最近更新 更多