【发布时间】:2012-07-24 03:31:27
【问题描述】:
假设我有一个名为 v 的对象,我如何找出它的容器类型(向量、列表、矩阵等),而不用尝试每个 is.vector(v)、is.list(v ) ... ?
【问题讨论】:
-
mode()对此提供了一些见解,尽管它不会区分data.frame()和list()或vector()和matrix()之间的 AFAIK。data.frame()是list()的特殊类型,matrix()只是带有一些dim属性的vector()。根据您的需要,您可以随时查看一些源代码以了解其他作者如何解决此问题。 -
谢谢!那么说matrix是vector的子类,data.frame是list的子类对吗?那么像 as.matrix(i.am.a.vector) 这样的转换类型的成本可以忽略不计?
-
@acai - 对于对象类的正确层次结构,我会听从其他人的意见,但输入的内容似乎最合理。以我的经验,通过
as.matrix()和朋友强迫物品实际上在宏伟的计划中是微不足道的......即每当我有一个足够长的函数来担心system.time()和Rprof(),as.matrix()等人都会占用一小部分时间。
标签: r