[R] Help using Cast (Text) Version

Steve Sidney sbsidney at mweb.co.za
Sun Jan 17 22:37:44 CET 2010


Well now I am totally baffled !!!!!!!!!!

Using

sum( !is.na(b[,3])) I get the total of all col 3 except those that are NA -
Great solves the first problem

What I can't seem to do is use the same logic to count all the 1's in that
col, which are there before I use the cast with margins.

So it seems to me that somehow sum((b[,3]) == 1)  is wrong and is the part 
of my understanding that's missing.

My guess is that that before using margins and sum in the cast statement the 
col is a character type and in order for == 1 to work I need to convert this 
to an integer.

Hope this helps you to understand the problem.

Regards
Steve

Your help is much appreciated
----- Original Message ----- 
From: "David Winsemius" <dwinsemius at comcast.net>
To: "Steve Sidney" <sbsidney at mweb.co.za>
Cc: <r-help at r-project.org>
Sent: Sunday, January 17, 2010 7:36 PM
Subject: Re: [R] Help using Cast (Text) Version


>
> On Jan 17, 2010, at 11:56 AM, Steve Sidney wrote:
>
>> David
>>
>> Thanks, I'll try that......but no what I need is the total (1's) for
>> each of the rows, labelled 1-6 at the top of each col in the table
>> provided.
>
> Part of my confusion with your request (which remains unaddressed) is
> what you mean by "valid". The melt-cast operation has turned a bunch  of
> NA's into 0's which are now indistinguishable from the original  0's. So I
> don't see any way that operating on "b" could tell you the  numbers you
> are asking for. If you were working on the original data,  "res", you
> might have gotten the column-wise "valid" counts of column  2 with
> something like:
>
>  sum( !is.na(res[,2]) )
>
>>
>> What I guess I am not sure of is how to identify the col after the  melt
>> and cast.
>
> The cast object represents columns as a list of vectors. The i-th  column
> is b[[i]] which could be further referenced as a vector. So the  j-th row
> entry for the i-th column would be b[[i]][j].
>
>
>>
>> Steve
>>
>> ----- Original Message ----- From: "David Winsemius"
>> <dwinsemius at comcast.net
>> >
>> To: "Steve Sidney" <sbsidney at mweb.co.za>
>> Cc: <r-help at r-project.org>
>> Sent: Sunday, January 17, 2010 4:39 PM
>> Subject: Re: [R] Help using Cast (Text) Version
>>
>>
>>>
>>> On Jan 17, 2010, at 5:31 AM, Steve Sidney wrote:
>>>
>>>> Sorry to repeat the meassage, not sure if the HTML version has  been
>>>> received - Apologies for duplication
>>>>
>>>> Dear list
>>>>
>>>> I am trying to count the no of occurances in a column of a data   frame
>>>> and there is missing data identifed by NA.
>>>>
>>>> I am able to melt and cast the data correctly as well as sum the
>>>> occurances using margins and sum.
>>>>
>>>> Here are the melt and cast commands
>>>>
>>>> bw = melt(res, id=c("lab","r"), "pf_zbw")
>>>> b = cast(bw, lab ~ r, sum, margins = T)
>>>>
>>>> Sample Data (before using sum and margins)
>>>>
>>>>   lab  1  2  3  4  5  6
>>>> 1  4er66  1 NA  1  0 NA  0
>>>> 2  4gcyi  0  0  1  0  0  0
>>>> 3  5d3hh  0  0  0 NA  0  0
>>>> 4  5d3wt  0  0  0  0  0  0
>>>> .
>>>> . lines deleted to save space
>>>> .
>>>> 69 v3st5 NA NA  1 NA NA NA
>>>> 70 a22g5 NA  0 NA NA NA NA
>>>> 71 b5dd3 NA  0 NA NA NA NA
>>>> 72 g44d2 NA  0 NA NA NA NA
>>>>
>>>> Data after using sum and margins
>>>>
>>>>   lab 1 2 3 4 5 6 (all)
>>>> 1  4er66 1 0 1 0 0 0     2
>>>> 2  4gcyi 0 0 1 0 0 0     1
>>>> 3  5d3hh 0 0 0 0 0 0     0
>>>> 4  5d3wt 0 0 0 0 0 0     0
>>>> 5  6n44r 0 0 0 0 0 0     0
>>>> .
>>>> .lines deleted to save space
>>>> .
>>>> 70 a22g5 0 0 0 0 0 0     0
>>>> 71 b5dd3 0 0 0 0 0 0     0
>>>> 72 g44d2 0 0 0 0 0 0     0
>>>> 73 (all) 5 2 4 3 5 7    26
>>>>
>>>> Uisng length just tells me how many total rows there are.
>>>
>>>
>>>> What I need to do is count how many rows there is valid data, in   this
>>>> case either a one (1) or a zero (0) in b
>>>
>>> I'm guessing that you mean to apply that test to the column in b
>>> labeled "(all)" . If that's the case, then something like  (obviously
>>> untested):
>>>
>>> sum( b$'(all)' == 1 | b$'(all)' == 0)
>>>
>>>
>>>
>>>>
>>>> I have a report to construct for tomorrow Mon so any help would be
>>>> appreciated
>>>>
>>>> Regards
>>>> Steve
>>>
>>> David Winsemius, MD
>>> Heritage Laboratories
>>> West Hartford, CT
>>>
>>
>
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
>
>



More information about the R-help mailing list