def funcionprincipal(dato,variable,opciones): from rpy import r #pylint: disable=import-error diccionario={"Descriptivo":{"Media":None,"Varianza":None,u"Desviación":None,"Mediana":None,"Moda":None,"Rango":None,u"Máximo":None,u"Mínimo":None,"Percentil":None,"Curtosis":None,u"Coeficiente de Asimetría":None}} lista=dato.query(str(variable)) diccionario["Descriptivo"]["Variable"]=str(variable) diccionario["Descriptivo"][u"Número de casos"]=len(lista) if opciones.has_key("Media"): diccionario["Descriptivo"]["Media"]=r.mean(lista) if opciones.has_key("Varianza"): diccionario["Descriptivo"]["Varianza"]=r.var(lista) if opciones.has_key(u"Desviación"): diccionario["Descriptivo"][u"Desviación"]=r.sd(lista) if opciones.has_key("Mediana"): diccionario["Descriptivo"]["Mediana"]=r.median(lista) #http://cran.r-project.org/doc/contrib/Lemon-kickstart/kr_dstat.html #http://wiki.r-project.org/rwiki/doku.php?id=tips:stats-basic:modalvalue&s=modal if opciones.has_key("Moda"): diccionario["Descriptivo"]["Moda"]=__moda(lista) if opciones.has_key("Rango"): diccionario["Descriptivo"]["Rango"]=r.range(lista) if opciones.has_key(u"Máximo"): diccionario["Descriptivo"][u"Máximo"]=r.max(lista) if opciones.has_key(u"Mínimo"): diccionario["Descriptivo"][u"Mínimo"]=r.min(lista) if opciones.has_key("Percentil"): diccionario["Descriptivo"]["Percentil"]="TODO" if opciones.has_key("Curtosis"): r.require("e1071") diccionario["Descriptivo"]["Curtosis"]=r.kurtosis(lista) if opciones.has_key(u"Coeficiente de Asimetría"): r.require("e1071") diccionario["Descriptivo"][u"Coeficiente de Asimetría"]=r.skewness(lista) return diccionario
def funcionprincipal(dato,variable,opciones): from rpy import r lista=dato.query(variable) num=len(lista) numcasos=len(list(r.table(lista))) total=0 diccionario = {} diccionario["Ji cuadrado"] = {} #MEJOR CONDICION TODAVIA = Numero de valores/Numero de datos > 0.15 #TODO: Cambiar por la "mejor condicion" if numcasos<30: if opciones[u"Distribución"]=="Uniforme": distribucion=r.runif(numcasos,1./numcasos,1./numcasos) resultado=r.chisq_test(list(r.table(lista)),p=distribucion) else: rango=r.range(lista) limiteinferior=rango[0]-0 #TODO: Revisar precisión limitesuperior=rango[1]+0 longitudrango=limitesuperior-limiteinferior numdivisiones=int(0.15*num) divisor=longitudrango/numdivisiones listaobtenida=[0 for x in range(numdivisiones)] for reg in lista: posicion=int(float(reg-limiteinferior-1)/divisor) if posicion>=numdivisiones: posicion=numdivisiones-1 listaobtenida[posicion]+=1 distribucion=r.runif(numdivisiones,1./numdivisiones,1./numdivisiones) resultado=r.chisq_test(listaobtenida,p=distribucion) diccionario["Ji cuadrado"]["Variable"] = str(variable) diccionario["Ji cuadrado"][u"Significación"]=resultado["p.value"] return diccionario
pch=21, col='blue', bg='lightblue', type='o') # second plot x = range(1,11) y = [i**2 for i in x] z = [i**3 for i in x] r.plot(x, y, main='My second plot', xlab='x', ylab='y', type='l', col='blue') r.lines(x, z, col='red') # cosine function, save to file import math r.png('cosine.png') x = r.seq(0,50, by=0.1) y = [math.cos(i) for i in x] r.plot(x, y, main='COS(X)', xlab='x', ylab='cos(x)', type='l', col='blue') r.dev_off() # histogram x = range(10) + range(3,6) + range(5,10) r.hist(x, main='A histogram', xlab='x', col='lightblue') # adust plotting area from rpy import r x = range(1,11) y = [i**2 for i in x] z = [i**3 for i in x] r.plot(x, y, main='My second plot', xlab='x', ylab='y', type='l', col='blue', ylim=r.range(y,z)) r.lines(x, z, col='red')