[R] more structure than 'str'?
Charles C. Berry
cberry at tajo.ucsd.edu
Mon Dec 17 04:08:00 CET 2007
On Sun, 16 Dec 2007, Spencer Graves wrote:
> How can I see more of the structure than displayed by 'str'?
str is generic.
> methods(str)
[1] str.data.frame* str.default* str.dendrogram* str.logLik* str.POSIXt*
Non-visible functions are asterisked
>
As you see there is a data.frame method that chooses not to report on the
"row.names" attribute.
You can get the default behavior by removing the class attribute:
> str(unclass(tstDF))
List of 1
$ a: num 1
- attr(*, "row.names")= chr "b"
>
HTH,
Chuck
> Consider the following:
>
>
> tstDF <- data.frame(a=1, row.names='b')
> > str(tstDF)
> 'data.frame': 1 obs. of 1 variable:
> $ a: num 1
>
>
> The object 'tstDF' has row.names, but I have to suspect they are
> there -- AND know a function like 'row.names' or 'dimnames' -- to see
> them.
>
> I've found 'str' extremely valuable for understanding and
> explaining to others the internal structure of an R object. In many
> cases, it has helped me find fairly simple ways to do things with R
> objects that might have been much more difficult and perhaps infeasible
> without 'str' -- and without access to the right expert, who may not be
> available in the time I have to solve a particular problem.
>
> Thanks again to Martin Maechler, who wrote 'str', and to everyone
> else who has replied to questions from me over the years.
>
> Best Wishes,
> Spencer Graves
> p.s. 'methods(class="data.frame")' would help in this example.
> However, 'methods' won't always find all available and recommended
> extractor functions. For example, 'methods(class="lm")' was not able to
> find 'AIC' for me just now.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
More information about the R-help
mailing list