r - 查找 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")
决定的?
解决方案
你不需要采取任何四个。当您调用 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
。
推荐阅读
- ios - 以编程方式设置 UITableView 数据源使其异步重新加载表
- detox - 如何使用 Detox 中的 streamlineReporter 显示运行、失败、跳过的测试总数
- spring-boot - 调用 MockWebServer 时无法访问 ExternalResource
- php - 无法从laravel中的ajax获取数据
- java - Selenium - 无法导入包“org.openqa.selenium.environment”
- druid - 无法通过 API 创建 Druid 摄取任务
- java - 传递对方法的引用而不是值(或类似的东西) - JAVA
- typescript - 使 array.map 返回特定的类型签名
- python - 气流堆栈网络服务器无法解析 postgres 相关属性,无法启动
- arrays - 如何使用 node.js 从 json 数组中获取新的数字列表