【发布时间】:2022-01-23 09:58:18
【问题描述】:
有没有办法获取在基础 R 中定义的所有类?我的预期输出是一个包含类名的字符向量。像这样的:
"character" "factor" "function" "dataframe" "list" ...
背景:我制作了一个应该应用于尽可能多的类的函数。我无法详细解释我在做什么,但请考虑像 str 这样的函数,据我所知可以应用于任何类。另一方面,像sum 这样的函数需要特定的输入,即数字输入。我想知道所有预定义的类,以便我可以看到我的函数在哪些类上有效,哪些无效。
【问题讨论】:
-
类只不过是对象上的字符串属性。 S3 类可以使用任何名称作为类名。我假设“base R”也指默认包,如
stats、utils和graphics。那里有很多课程。例如class(as.person("Joe Smith"))。据我所知,没有主名单。您在寻找对象的哪些属性? -
“考虑像
str这样的函数,据我所知可以应用于任何类”str是 S3 泛型。默认方法适用于所有模式。如果你想让它为一个类做任何特定的事情,你需要为str定义一个方法。 -
您可以查看base packages 的
NAMESPACE文件中的S3method条目。 -
您可能会发现
.S3_methods_table很有帮助。 -
这是有用的提示。尤其是来自@jay.sf 的
.S3_methods_table很棒!