127

我经常会得到一个产生输出的函数,但我不了解它的输出数据类型。我期待一个列表,它最终成为列表列表或数据框或其他东西。首次使用函数时确定输出数据类型的好方法或工作流程是什么?

4

4 回答 4

135

我通常从以下组合开始:

typeof(obj)
class(obj)
sapply(obj, class)
sapply(obj, attributes)
attributes(obj)
names(obj)

根据所揭示的内容酌情进行。例如,尝试:

obj <- data.frame(a=1:26, b=letters)
obj <- list(a=1:26, b=letters, c=list(d=1:26, e=letters))
data(cars)
obj <- lm(dist ~ speed, data=cars)

..ETC。

如果obj是 S3 或 S4 对象,您也可以尝试methodsor showMethods,showClass等。Patrick Burns 的R Inferno对此有很好的部分(第 7 节)。

编辑:Dirk 和 Hadleystr(obj)在他们的回答中提到。对于快速甚至详细地窥视对象,它确实比上述任何方法都要好得多。

于 2009-07-24T15:00:44.443 回答
69
str(x)

对于 99% 的案例,您只需要记住这些。

于 2009-07-26T14:13:18.870 回答
13

如果我得到“someObject”,请说通过

someObject <- myMagicFunction(...)

然后我通常会继续

class(someObject)
str(someObject)

后面可以是 head()、summary()、print()、...,具体取决于您所拥有的课程。

于 2009-07-24T14:31:39.657 回答
9
attributes(someObject) 

也可以有用

于 2009-07-24T14:36:31.240 回答