[R] Problems with basic loop
Peter Dalgaard
P.Dalgaard at biostat.ku.dk
Fri Jun 20 13:46:24 CEST 2008
Michael Pearmain wrote:
> Thanks for the reply Peter,
>
>
>> I did just see that i had put the first error message,(agreed rather an
>> obvious error) in and not the second i received
>>
>> Warning message:
>> In asin(sqrt(yF[i])) : NaNs produced
>>
Ah. Notwithstanding other remarks, that one would be due to
yT<-x[,"True"]/colSums(x)
The divisor here is a vector of length two!! So every 2nd time you are dividing with the wrong thing and in one case that gets you a relative frequency bigger than 1...
>> The reason i'm looking at this is advert exposure True and False.
>>
>> I'm inspecting age to asses weather or not to weight data in order to
>> normalise groups for later questions,
>> The questions that i am looking at later on are not scale based questions
>> so i cannot perform t-tests on these, so i thought the only viable way was
>> to look at z-tests for proportions to check for post-hoc differences
>>
>> Any advise on other methods would be gratefully taken
>>
>>
I still don't see where the notion of power needs to come in. Shouldn't
the effect size for "The questions that I am looking at later" enter
somehow? If you just want to know whether there is age-dependent
exposure, how about
chisq.test(SURVEY$n_0,exposed)
(or wilcox.test if you want something that takes the group ordering into
account, or prop.trend.test). If, for better or worse, you want to test
single rows, you could use
chisq.test(SURVEY$n_0 == "35-44",exposed)
etc.
>>
>> On Fri, Jun 20, 2008 at 11:14 AM, Peter Dalgaard <P.Dalgaard at biostat.ku.dk>
>> wrote:
>>
>>
>>> Michael Pearmain wrote:
>>>
>>>> I'm having trouble creating a looping variable and i can't see wher ethe
>>>> problem arises from any hep gratfully appreciated
>>>>
>>>> First create a table
>>>>
>>>> x<-table(SURVEY$n_0,exposed)
>>>>
>>>>
>>>>> x
>>>>>
>>>>>
>>>> exposed
>>>> False True
>>>> Under 16 24 1
>>>> 16-19 68 9
>>>> 20-24 190 37
>>>> 25-34 555 204
>>>> 35-44 330 87
>>>> 45-54 198 65
>>>> 55-64 67 35
>>>> 65+ 10 8
>>>>
>>>> Now ectors to store counts and column proportions
>>>>
>>>>
>>>>
>>>>> xT<-x[,"True"]
>>>>> xF<-x[,"False"]
>>>>> yT<-x[,"True"]/colSums(x)
>>>>> yF<-x[,"False"]/colSums(x)
>>>>>
>>>>>
>>>> check length for dynamic looping
>>>>
>>>>
>>>>> length(yT)
>>>>>
>>>>>
>>>> [1] 8
>>>>
>>>> now create loop
>>>>
>>>>
>>>>> for(i in 1:length(yT)){
>>>>>
>>>>>
>>>> +
>>>>
>>> pwr.2p2n.test(2*(asin(sqrt(yT[i]))-asin(sqrt(yF[i]))),n1=xT[i],n2=xF[i])
>>>
>>>> + }
>>>> Error in pwr.2p2n.test(2 * (asin(sqrt(yT[i])) - asin(sqrt(yF[i]))), n1 =
>>>> xT[i], :
>>>> number of observations in the first group must be at least 2
>>>>
>>>> this confuses me as if i enter the data as values the procedure works?
>>>>
>>>> Thanks in advance
>>>>
>>>>
>>> Er, the first row "under 16" has a count of 1 in the "True" column and
>>> it confuses you that you get an error saying that you need at least 2??
>>>
>>> But what looks _really_ confused is what you are trying to do in the
>>> first place: The p's you are passing to pwr.2p2n are the empirical
>>> relative frequencies of the individual age groups. This sort of reverses
>>> cause and effect (presumably the exposure does not cause middle age) and
>>> it is pretty odd to compare a particular row in a table with everything
>>> else jumbled together but worse, it is post-hoc power calculation, which
>>> is just a plain Bad Idea (as several people have pointed out before).
>>>
>>> --
>>> O__ ---- Peter Dalgaard �ster Farimagsgade 5, Entr.B
>>> c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
>>> (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
>>> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
>>>
>>>
>>>
>>>
>> --
>> Michael Pearmain
>> Senior Statistical Analyst
>>
>>
>> 1st Floor, 180 Great Portland St. London W1W 5QZ
>> t +44 (0) 2032191684
>> mpearmain at google.com
>> mpearmain at doubleclick.com
>>
>>
>> Doubleclick is a part of the Google group of companies
>>
>
> [[alternative HTML version deleted]]
>
>
> ------------------------------------------------------------------------
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list