[R] Smart detection of wrap width?

MacQueen, Don macqueen1 at llnl.gov
Mon Apr 20 16:59:56 CEST 2015


I'm glad it's helpful!

Defining it and then invoking it in ~/.Rprofile would work, but then you
will need to be careful about managing both ./.Rprofile and ~/.Rprofile
files. If you have one of the former, then the latter does not get sourced
at startup (see ?Startup). Of course, you can put source('~/.Rprofile') in
a local ./.Rprofile to take care of that if you want.

But in the long run, it would be a better practice to put personal helper
functions like this in a package and then load it in your .Rprofile
file(s). Most of my ./.Rprofile files have
  require(rmacq)
  setwid()
in them (along with whatever other directory-specific startup actions I
want). The more personal helper functions you have, the more valuable it
will be to put them in a package instead of defining them in ~/.Rprofile.

-Don

-- 
Don MacQueen

Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062





On 4/17/15, 4:36 PM, "Paul Domaskis" <paul.domaskis at gmail.com> wrote:

>Yes, I found the width option in the help pages, but I was wondering
>if there was automatic setting of the wrapping according to the
>current window width.
>
>Your function works exactly as I wished.  I'll probably get smarter
>with time (I hope) but would it be reasonably good practice to stick
>this into ~/.Rprofile?  I don't suppose there is a way to have it
>automatically invoked when the window size/positition changes?  (It's
>still priceless even without automatic triggering).
>
>On Fri, Apr 17, 2015 at 7:20 PM, MacQueen, Don <macqueen1 at llnl.gov>
>wrote:
>> A lot of this depends on what context you are running R in, e.g.,
>> Windows console, Mac console, or command line in a unix-alike. Or
>> within ESS in emacs. Those are different interfaces supported by, to
>> some extent, different people, and are based on the underlying
>> capabilities provided by the operating system.
>>
>> Have you yet encountered
>>   options()$width
>> ?
>> For example,
>>   options(width=100)
>> will cause wrapping at 100, at least for certain kinds of output.
>>
>> In an xterm shell running in an X windows context, I frequently use
>>
>> setwid <- function ()
>> {
>>     if (!interactive())
>>         return(invisible(NULL))
>>     scon <- pipe("stty -a")
>>     stty <- scan(scon, what = "", sep = ";", quiet = T)
>>     close(scon)
>>     cstr <- stty[grep("columns", stty)]
>>     options(width = as.numeric(gsub("[^0-9]", "", cstr, ignore.case =
>>T)))
>>     paste("width =", options()$width, "\n")
>> }
>>
>> A function I wrote that resets the width option to match the window
>> widths, and therefore adjusts the wrapping after I resize a windwo.



More information about the R-help mailing list