[R] print only a few lines of an object
David Carlson
dc@r|@on @end|ng |rom t@mu@edu
Wed Mar 23 22:26:39 CET 2022
You can set the "max.print" option to something other than the default
value of 99999, e.g. options(max.print=50). The number is not lines,
or characters as far as I can tell. For example setting max.print=50
causes print(iris) to display the first 10 lines followed by a
warning. On a list object it seems to apply to each part of the list,
(e.g. split(iris, iris$Species) prints 10 lines of each species. This
is a crude tool that is mostly useful if you are working with large
objects and have a bad tendency to type the object name without
thinking.
David L Carlson
On Wed, Mar 23, 2022 at 3:32 PM John Fox <jfox using mcmaster.ca> wrote:
>
> Dear Jeff, On 2022-03-23 3:36 p.m., Jeff Newmiller wrote: > After-thought... > > Why not just use head() and tail() like normal R users do? head() and tail() are reasonable choices if there are many rows, but not if there are many ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
> ZjQcmQRYFpfptBannerEnd
>
> Dear Jeff,
>
> On 2022-03-23 3:36 p.m., Jeff Newmiller wrote:
> > After-thought...
> >
> > Why not just use head() and tail() like normal R users do?
>
> head() and tail() are reasonable choices if there are many rows, but not
> if there are many columns.
>
> My first thought was your previous suggestion to redefine print()
> methods (although I agree with you that this isn't a good idea), but
> though I could get that to work for data frames, I couldn't for matrices.
>
> Adapting my preceding examples using car::brief():
>
> > X <- matrix(rnorm(20000*200), nrow = 20000)
>
> > library("car")
> Loading required package: carData
>
> > print.data.frame <- function(x, ...){ # not recommended!
> + brief(x, ...)
> + invisible(x)
> + }
>
> > as.data.frame(X)
> 20000 x 200 data.frame (19995 rows and 195 columns omitted)
> V1 V2 V3 . . . V199 V200
> [n] [n] [n] [n] [n]
> 1 -1.1810658 -0.6090037 1.0057908 1.23860428 0.6265465
> 2 -1.6395909 -0.2828005 -0.6418150 1.12875894 -0.7594760
> 3 0.2751099 0.2268473 0.2267713 0.64305445 1.1951732
> . . .
> 19999 1.2744054 1.0170934 -1.0172511 -0.02997537 0.7645707
> 20000 -0.4798590 -1.8248293 -1.4664622 -0.06359483 0.7671203
>
>
> > print.matrix <- function(x, ...){ # not recommended (and doesn't work)!
> + brief(x, ...)
> + invisible(x)
> + }
>
> > X
> [,1] [,2] [,3] [,4]
> [,5]
> [1,] -1.181066e+00 -6.090037e-01 1.005791e+00 3.738742e+00
> -6.986169e-01
> [2,] -1.639591e+00 -2.828005e-01 -6.418150e-01 -7.424275e-01
> -1.415092e-01
> [3,] 2.751099e-01 2.268473e-01 2.267713e-01 -6.308073e-01
> 7.042624e-01
> [4,] -9.210181e-01 -4.617637e-01 1.523291e+00 4.003071e-01
> -2.792705e-01
> [5,] -6.047414e-01 1.976075e-01 6.065795e-01 -8.074581e-01
> -4.089352e-01
>
> . . . [many lines elided]
>
> [,196] [,197] [,198] [,199]
> [,200]
> [1,] -1.453015e+00 1.347678e+00 1.189217e+00 1.238604e+00
> 0.6265465033
> [2,] -1.693822e+00 2.689917e-01 -1.703176e-01 1.128759e+00
> -0.7594760299
> [3,] 1.260585e-01 6.589839e-01 -7.928987e-01 6.430545e-01
> 1.1951731814
> [4,] -1.890582e+00 7.614779e-01 -5.726204e-01 1.090881e+00
> 0.9570510645
> [5,] -8.667687e-01 5.365750e-01 -2.079445e+00 1.209543e+00
> -0.2697400234
> [ reached getOption("max.print") -- omitted 19995 rows ]
>
> So, something more complicated that I don't understand is going on with
> matrices.
>
> Best,
> John
>
> >
> > On March 23, 2022 12:31:46 PM PDT, Jeff Newmiller <jdnewmil using dcn.davis.ca.us> wrote:
> >> Sure. Re-define the print method for those objects. Can't say I recommend this, but it can be done.
> >>
> >> On March 23, 2022 11:44:01 AM PDT, Naresh Gurbuxani <naresh_gurbuxani using hotmail.com> wrote:
> >>> In an R session, when I type the name of an object, R prints the entire object (for example, a 20000 x 5 data.frame). Is it possible to change the default behavior so that only the first five and last five rows are printed?
> >>>
> >>> Similarly, if the object is a 20000 x 200 matrix, the default behavior will be to print first five and last five columns, combined with first five and last five rows.
> >>>
> >>> Thanks,
> >>> Naresh
> >>> ______________________________________________
> >>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >>> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help__;!!KwNVnqRv!SHUnKZnGGIuDhR3CYX60wwKDCoy0r4PVMrM2SNw3JDac0fl8Fjc7PY3Fxu1u5Xo$
> >>> PLEASE do read the posting guide https://urldefense.com/v3/__http://www.R-project.org/posting-guide.html__;!!KwNVnqRv!SHUnKZnGGIuDhR3CYX60wwKDCoy0r4PVMrM2SNw3JDac0fl8Fjc7PY3Fdt4UHeg$
> >>> and provide commented, minimal, self-contained, reproducible code.
> >>
> >
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help__;!!KwNVnqRv!SHUnKZnGGIuDhR3CYX60wwKDCoy0r4PVMrM2SNw3JDac0fl8Fjc7PY3Fxu1u5Xo$
> PLEASE do read the posting guide https://urldefense.com/v3/__http://www.R-project.org/posting-guide.html__;!!KwNVnqRv!SHUnKZnGGIuDhR3CYX60wwKDCoy0r4PVMrM2SNw3JDac0fl8Fjc7PY3Fdt4UHeg$
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list