我希望能够看到使用str()时使用的函数,因为我想将它作为另一个函数修改一下。
当我输入str()
时,我会收到以下信息:
function (object, ...)
UseMethod("str")
<environment: namespace:utils>
所以我尝试了,getAnywhere(str)
:
2 differing objects matching ‘str’ were found
in the following places
.GlobalEnv
package:utils
namespace:utils
Use [] to view one of them
但是文档中没有关于使用[]
所以我尝试了,getAnywhere(str)[1]
:
function (object, ...)
UseMethod("str")
<environment: namespace:utils>
叹息。好吧,那么showMethods(str)
:
Function "str":
<not a generic function>
那么,如何查看str()
的输出结构?或者我可以吗?
答案 0 :(得分:11)
您希望methods()
用于S3通用,例如str()
:
> methods(str)
[1] str.data.frame* str.Date* str.default*
[4] str.dendrogram* str.logLik* str.POSIXt*
Non-visible functions are asterisked
使用getAnywhere(str)
并不是很有用,因为str()
是可见的,因此如果您只是在提示符处运行str
,则会得到相同的结果。您需要getAnywhere()
来查看上面列出的隐藏方法:
getAnywhere(str.default)
例如。
羞耻你需要知道列出方法的函数的通用类型;如果R不关心为这些函数中的一个或另一个提供何种方法类型,那么用户友好性似乎会得到改善。
答案 1 :(得分:8)
你也可以这样做:
> methods(by)
[1] by.data.frame by.default
> getS3method("by", "data.frame")
function (data, INDICES, FUN, ..., simplify = TRUE)
{
...
}
<environment: namespace:base>