On Tue, Aug 28, 2012 at 1:16 PM, Liviu Andronic <landronim...@gmail.com> wrote: > On Tue, Aug 28, 2012 at 7:34 PM, Duncan Murdoch > <murdoch.dun...@gmail.com> wrote: >> Assign a class to the object, and write a print method for it. >> >> For example, this doesn't quite do what you want, but it's a start: >> >> print.noattributes <- function(x, ...) { >> attributes(x) <- NULL >> print(x) >> } >> >> class(x) <- "noattributes" >> x >> >> It loses some attributes that you probably want to keep (e.g. the names), >> but otherwise works on your example. >> > I've already tried this solution but that's exactly the trouble with > this approach. Do this on a data.frame and loses important > information. > > I came up with a modified version of the above: > print_noattr <- function(x, keep.some=T, ...){ > if(keep.some) xa <- attributes(x)[c('names', 'row.names', 'class')] > attributes(x) <- NULL > if(keep.some) attributes(x) <- xa > print(x) > } > >> x <- dlply(iris, .(Species), function(x) describe(x[, 'Sepal.Length'])) >> print_noattr(x) > $setosa > x[, "Sepal.Length"] > n missing unique Mean .05 .10 .25 .50 .75 > 50 0 15 5.006 4.40 4.59 4.80 5.00 5.20 > .90 .95 > 5.41 5.61 > > 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 5.1 5.2 5.3 5.4 5.5 5.7 5.8 > Frequency 1 3 1 4 2 5 4 8 8 3 1 5 2 2 1 > % 2 6 2 8 4 10 8 16 16 6 2 10 4 4 2 > > $versicolor > x[, "Sepal.Length"] > n missing unique Mean .05 .10 .25 .50 .75 > 50 0 21 5.936 5.045 5.380 5.600 5.900 6.300 > .90 .95 > 6.700 6.755 > > lowest : 4.9 5.0 5.1 5.2 5.4, highest: 6.6 6.7 6.8 6.9 7.0 > > $virginica > x[, "Sepal.Length"] > n missing unique Mean .05 .10 .25 .50 .75 > 50 0 21 6.588 5.745 5.800 6.225 6.500 6.900 > .90 .95 > 7.610 7.700 > > lowest : 4.9 5.6 5.7 5.8 5.9, highest: 7.3 7.4 7.6 7.7 7.9 > > > However this still feels like a hack, and the function should be > modified if the object in question contains some other crucial > attributes. >
Well, you're sort of stuck between the fact that things you consider important (dimensionality, names, etc.) are attributes not treated too differently from "less important" attributes and I'm not sure there's a way to do it entirely automatically. Though, untested, perhaps mostattributes(x) <- NULL gives you what you are looking for. Cheers, Michael > > > On Tue, Aug 28, 2012 at 7:44 PM, Peter Ehlers <ehl...@ucalgary.ca> wrote: >> It seems that class "listof" also works: >> >> class(x) <- "listof" >> x >> > This works great. Thanks. > > Liviu > > ______________________________________________ > R-help@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. ______________________________________________ R-help@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.