[Rd] Could unit.list() from grid package be made an exported function?

Paul Murrell paul at stat.auckland.ac.nz
Tue Mar 8 22:38:24 CET 2016


Hi

On 09/03/16 09:54, Wilke, Claus O wrote:
> Paul,
>
>> Subassignment for units has been committed to r-devel.
>> You should now be able to do things like ...
>>
>> x <- unit(1:3, "mm")
>> x[2] <- unit(.5, "npc")
>>
>> (see grid/tests/units.R for more complex examples)
>
> Yes, I just tried the latest R devel and it works for me. However:

Great.  Thanks for testing it out.

>> This works for me for the three stackoverflow scenarios.
>
> I ran into an additional problem when trying to replicate this example:
> http://stackoverflow.com/a/32583612/4975218
>
> This line in the function set_panel_size() causes an error for me:
> g$widths[panel_index_w] <-  rep(list(width), nw)
>
> Error in `[<-.unit`(`*tmp*`, panel_index_w, value = list(4, 4, 4)) :
>    Value being assigned must be a unit

Right, that line (and the one below) can now just use rep() on a unit 
(no need for lists anymore), like this ...

g$widths[panel_index_w] <-  rep(width, nw)

(full example code attached)

Paul

> I can avoid the error by changing the line into:
> g$widths[panel_index_w] <-  rep(grid:::unit.list(width), nw)
>
> This, however, again uses grid:::unit.list(). Maybe there’s another way
> around this, but turning a single width value into a unit.list seems the
> obvious way to go in a case like this. So again, I’d like to request
> that grid:::unit.list() be made an exported function as well. It seems
> quite useful any time somebody wants to make a list of units.
>
> Thanks!
>
> Claus
>
> --
> Claus Wilke
> Professor and Department Chair, Integrative Biology
> The University of Texas at Austin
> 2500 Speedway, A4800
> Austin, Texas 78712
> 512 232 2459
>

-- 
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/


More information about the R-devel mailing list