R object identification

前端 未结 4 903
梦如初夏
梦如初夏 2020-12-04 05:10

I am often ending up with a function producing output for which I don\'t understand the output data type. I\'m expecting a list and it ends up being a list of lists or a dat

相关标签:
4条回答
  • 2020-12-04 05:34

    If I get 'someObject', say via

    someObject <- myMagicFunction(...)
    

    then I usually proceed by

    class(someObject)
    str(someObject)
    

    which can be followed by head(), summary(), print(), ... depending on the class you have.

    0 讨论(0)
  • 2020-12-04 05:48
    str(x)
    

    It's all you need to remember for 99% of cases.

    0 讨论(0)
  • 2020-12-04 05:51
    attributes(someObject) 
    

    Can also be useful

    0 讨论(0)
  • 2020-12-04 05:57

    I usually start out with some combination of:

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

    as appropriate based on what's revealed. For example, try with:

    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.

    If obj is an S3 or S4 object, you can also try methods or showMethods, showClass, etc. Patrick Burns' R Inferno has a pretty good section on this (sec #7).

    EDIT: Dirk and Hadley mention str(obj) in their answers. It really is much better than any of the above for a quick and even detailed peek into an object.

    0 讨论(0)
提交回复
热议问题