[R] Tables package - remove NAs and NaN

David Winsemius dwinsemius at comcast.net
Tue Apr 23 10:00:47 CEST 2013


On Apr 23, 2013, at 12:53 AM, Liviu Andronic wrote:

> Dear David,
> I'm having the exact same issue as Santosh, and looking at the fix
> that you've provided it seems to me that results are slightly
> different.
> 
Reverse the order of arguemtns to `interaction`:

 tabular( (`p a`=interaction(a,p, drop=TRUE, sep=" ")) ~ (N = 1) + (b + c)*
              (mean+sd),data=q)
                              
        b           c         
 p a N  mean sd     mean sd   
 1 A 10 12.8 0.7888 52.1 8.020
 3 A 10 14.6 3.7771 56.5 6.980
 2 B 10 16.3 3.0569 54.9 8.711


> with(q, levels( interaction(p,a, drop=TRUE, sep=" ") ) )
[1] "A 1" "B 2" "A 3"
> with(q, levels( interaction(a,p, drop=TRUE, sep=" ") ) )
[1] "1 A" "3 A" "2 B"


-- 
David.
> 
> On Tue, Apr 23, 2013 at 4:40 AM, David Winsemius <dwinsemius at comcast.net> wrote:
>>>            b               c
>>> p a   N  mean  sd    mean  sd
>>> A 1   10 16.30 2.497 52.30  9.358
>>>  2    0   NaN    NA   NaN     NA
>>>  3   10 15.60 2.716 60.30  8.001
>>> B 1    0   NaN    NA   NaN     NA
>>>  2   10 15.40 2.366 57.70 10.414
>>>  3    0   NaN    NA   NaN     NA
>>>  All 30 15.77 2.473 56.77  9.601
>>> 
>>> How do I remove the rows having N=0 ?
>>> I would like the resulting table look like..
>>>            b               c
>>> p a   N  mean  sd    mean  sd
>>> A 1   10 16.30 2.497 52.30  9.358
>>>    3   10 15.60 2.716 60.30  8.001
>>> B  2   10 15.40 2.366 57.70 10.414
>>>  All 30 15.77 2.473 56.77  9.601
>> 
>> Here's a bit of a hack:
>> 
>> tabular( (`p a`=interaction(p,a, drop=TRUE, sep=" ")) ~ (N = 1) + (b + c)*
>>    (mean+sd),data=q)
>> 
>>        b           c
>> p a N  mean sd     mean sd
>> A 1 10 12.8 0.7888 52.1 8.020
>> B 2 10 16.3 3.0569 54.9 8.711
>> A 3 10 14.6 3.7771 56.5 6.980
>> 
> What Santosh and I would expect to get from the above is:
> [..]
> A 1   10 16.30 2.497 52.30  9.358
>    3   10 15.60 2.716 60.30  8.001
> [..]
> 
> but what we get with your approach is:
> [..]
> A 1 10 12.8 0.7888 52.1 8.020
> B 2 10 16.3 3.0569 54.9 8.711
> [..]
> 
> Although your approach makes things much better, can the original
> ordering be retained?
> 
> 
>> I have been rather hoping that Duncan Murdoch would have noticed the earlier thread, but maybe he can comment on whether there is a more direct route/
>> 
> I hope so, too. Regards,
> Liviu

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list