[R] Help using Cast (Text) Version
Steve Sidney
sbsidney at mweb.co.za
Mon Jan 18 13:58:01 CET 2010
Hi David
Thanks for your patience, as well as thanks to Dennis Murphy and James Rome
for trying to help.
I have tried all your suggestions but still no joy.
In order to try and resolve the problem I am attaching the following files,
hope the system allows this.
1) Test_data_res.txt (used dput and this is all the data to be evaluated )
2) Test_data_b.txt ( after performing the melt-cast. See the code)
3) Annual Results NLA WMS Ver1.r ( the code for one of the parameters to be
evaluated. In this case SPC)
Background; the data is from a laboratory Proficiency Testing Scheme and the
z-scores outside the |3| range, are identified as "fails". My code assigns a
1 or 0 depending on this evaluation and because not every lab participates
in every round NA are assigned where there are no results.
What I am looking for is the following for each round (1-6)
a) The total number of participants which in this case are represented by
1's and 0' per round
b) The total number of 1's, ie Fails per round
Regards
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: Monday, January 18, 2010 12:38 AM
Subject: Re: [R] Help using Cast (Text) Version
>
> On Jan 17, 2010, at 4:37 PM, Steve Sidney wrote:
>
>> 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 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.
>
> Yiu can test your theory with:
>
> sum(as.integer(b[,3]) == 1)
>
> Or you could post some reproducible data using dput ....
>
> --
> David.
>
>
>>
>> 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
>>>
>>>
>>
>
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
>
>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Test_data_b.txt
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20100118/d34a9fa5/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Test_data_res.txt
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20100118/d34a9fa5/attachment-0001.txt>
More information about the R-help
mailing list