#!/usr/bin/env python import pandas.rpy.common as com import pandas as pd import numpy as np import rpy2.robjects as robjects from rpy2.robjects.packages import importr nlme = importr('nlme') lme4 = importr('lme4') base = com.importr('base') stats = com.importr('stats') xtable = importr('xtable') stargazer = importr('stargazer') texreg = importr('texreg') #formulae strings: formulae = [ 'RT~1', 'RT~cat1', 'RT~cat1+cat2', ] randoms = [ '~1|ID' ] for idx, formula in enumerate(formulae): formulae[idx] = robjects.Formula(formula + ' + (1|ID)') # make a formula obect #formulae[idx] = robjects.Formula(formula) # make a formula obect for idx, random in enumerate(randoms): randoms[idx] = robjects.Formula(random) # make a formula obect mydata = pd.DataFrame.from_csv('http://chymera.eu/data/test/r_data.csv', parse_dates=False, index_col=False) #dfr = com.convert_to_r_dataframe(mydata, True) # convert from pandas to R and make string columns factors mydata['ID'] = mydata['ID'].astype('S8') dfr = com.convert_to_r_dataframe(mydata, True) # convert from pandas to R and make string columns factors print (base.levels(dfr.rx2('ID'))) res = [] for formula in formulae: print 'Starting :'+str(formula)[:-1] #lme_res = nlme.lme(fixed=formula, data=dfr, random=randoms[0], method='ML') lme_res = lme4.lmer(formula=formula, data=dfr, REML='false') #~ lme_res = base.summary(lme_res) res.append(lme_res) print 'Completed!' res_sum = base.summary(res[0]) print res_sum latex = texreg.extract(res_sum) latex = texreg.extract.lme4(res_sum) latex = texreg.extract.extract.lme4(res_sum) latex = texreg.texreg.extract.lme4(res_sum) comparison = stats.anova(*res[:2]) # comparison = base.summary(cmparison)