[R] Same regression per sub-group: apply?
Romain Francois
rfrancois at mango-solutions.com
Fri Dec 7 10:16:59 CET 2007
What about ?by, something like this (still untested):
model.per.country <- by( data, data$COUNTRY, function (x) {
glm(dependent.var ~ FEMALE + AGE + EDUCLIN, family = binomial, data = x)
})
Or
model.per.country <- by( data, data$COUNTRY,
glm , dependent.var ~ FEMALE + AGE + EDUCLIN, family = binomial )
Cheers,
Romain
Dimitris Rizopoulos wrote:
> try something like this (untested):
>
> dataCountry <- split(data, data$COUNTRY)
> model.per.country <- lapply(dataCountry, function (x) {
> glm(dependent.var ~ FEMALE + AGE + EDUCLIN, family = binomial,
> data = x)
> })
>
>
> I hope it helps.
>
> Best,
> Dimitris
>
> ----
> Dimitris Rizopoulos
> Ph.D. Student
> Biostatistical Centre
> School of Public Health
> Catholic University of Leuven
>
> Address: Kapucijnenvoer 35, Leuven, Belgium
> Tel: +32/(0)16/336899
> Fax: +32/(0)16/337015
> Web: http://med.kuleuven.be/biostat/
> http://www.student.kuleuven.be/~m0390867/dimitris.htm
>
>
> ----- Original Message -----
> From: "Rense Nieuwenhuis" <r.nieuwenhuis at student.ru.nl>
> To: <r-help at stat.math.ethz.ch>
> Sent: Friday, December 07, 2007 9:32 AM
> Subject: [R] Same regression per sub-group: apply?
>
>
>
>> Dear helpers,
>>
>> I've come up with what is probably a simple problem, but I cannot
>> find the solution. I have a data-set containing survey-data from
>> several countries. What I want to do is to perform some regression
>> analyses, for each country separately. The question is, how to do
>> this nicely (thus without repeating the same syntax with another
>> `subset' argument).
>>
>> I thought of the following:
>>
>> model.per.country <- tapply(data, data$COUNTRY, function(x) glm
>> (dependent.var ~ FEMALE + AGE + EDUCLIN + (), family=binomial,
>> data=capital))
>>
>> But this does not work. What goes wrong, I think, is that the
>> dependent variable is clustered according to `Country', but not so
>> for the predictors. The error message I received:
>>
>> Error in tapply(dat, dat$COUNTRY, function(x) glm(participate ~
>> FEMALE + :
>> arguments must have same length
>>
>> Could you please help me solving this little problem?
>>
>> Thanks in advance:
>>
>> Rense Nieuwenhuis
>>
>>
>>
>> [[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.
>>
>>
>
>
> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
>
> ______________________________________________
> 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.
>
>
--
Mango Solutions
data analysis that delivers
Tel: +44(0) 1249 467 467
Fax: +44(0) 1249 467 468
Mob: +44(0) 7813 526 123
More information about the R-help
mailing list