R对象识别

时间:2009-07-24 14:07:07

标签: r object

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

4 个答案:

答案 0 :(得分:120)

我通常从以下组合开始:

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'R Inferno有一个相当不错的部分(第7段)。

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

答案 1 :(得分:58)

str(x)

99%的案例都需要记住这一点。

答案 2 :(得分:12)

如果我得到'someObject',请通过

someObject <- myMagicFunction(...)

然后我通常按

进行
class(someObject)
str(someObject)

后面可以跟head(),summary(),print(),...取决于你所拥有的类。

答案 3 :(得分:8)

attributes(someObject) 

也可以有用