首页 > 解决方案 > 查找 R 包装函数的使用方法

问题描述

我在看这个问题:useMethod 在这里是什么意思?.

我正在尝试对 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")决定的?

标签: r

解决方案


你不需要采取任何四个。当您调用 on 时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


推荐阅读