From paul at stat.auckland.ac.nz  Tue Mar  8 22:38:24 2016
From: paul at stat.auckland.ac.nz (Paul Murrell)
Date: Wed, 9 Mar 2016 10:38:24 +1300
Subject: [Rd] Could unit.list() from grid package be made an exported
 function?
In-Reply-To: <D7E599B9-ADAC-459D-B561-6A268E5A57CF@austin.utexas.edu>
References: <DE6ECFF5-1424-4039-833D-BE1C4192A558@austin.utexas.edu>
	<56DDE098.20708@stat.auckland.ac.nz>
	<D7E599B9-ADAC-459D-B561-6A268E5A57CF@austin.utexas.edu>
Message-ID: <56DF4650.7030804@stat.auckland.ac.nz>

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/


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