目标识别

我经常最终得到一个产生输出的函数,但是我并不理解其输出数据类型。我期待一个列表,它最终是一个列表或数据框架或其他东西的列表。在第一次使用函数时,什么是计算输出数据类型的好方法或工作流程?

120413 次浏览

如果我得到‘ some Object’,说 via

someObject <- myMagicFunction(...)

然后我通常会经过

class(someObject)
str(someObject)

后面可以跟头()、摘要()、打印()、 ... ,这取决于您所使用的类。

attributes(someObject)

也能派上用场

我通常从以下几个组合开始:

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对象,也可以尝试 methodsshowMethodsshowClass等。帕特里克•伯恩斯(Patrick Burns)的 地狱之火有一个相当不错的章节(第7节)。

德克和哈德利在回答中提到了 str(obj)。对于快速甚至详细地窥视一个对象,它确实比上面的任何一个都要好得多。

str(x)

99% 的病例都需要记住这个。