R对象识别

我经常结束一个函数产生输出,我不明白输出数据types。 我期待一个列表,它最终是列表或数据框或其他东西的列表。 首次使用函数时,计算输出数据types的好方法或工作stream程是什么?

我通常从一些组合开始:

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) 

..等等。

如果obj是一个S3或者S4对象,你也可以尝试methods或者showMethodsshowClass等等showClass Burns的R Inferno在这个方面有一个相当不错的部分(#7)。

编辑 :德克和哈德利在他们的答案中提到str(obj) 。 对于一个对象的快速甚至详细的窥视,它确实比上述任何一个都好得多。

 str(x) 

这就是99%的案例需要记住的一切。

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

 someObject <- myMagicFunction(...) 

那么我通常会继续

 class(someObject) str(someObject) 

这可以通过head(),summary(),print()…来实现,具体取决于你所拥有的类。

 attributes(someObject) 

也可以是有用的