Beispiel #1
0
    def testChooseFileWithError(self):
        def noconsole(x):
            pass

        rinterface.set_writeconsole(
            noconsole)  # reverted by the tearDown method

        def f(prompt):
            raise Exception("Doesn't work.")

        rinterface.set_choosefile(f)

        tmp_file = tempfile.NamedTemporaryFile()
        stderr = sys.stderr
        sys.stderr = tmp_file
        try:
            res = rinterface.baseenv["file.choose"]()
        except rinterface.RRuntimeError:
            pass
        except Exception as e:
            sys.stderr = stderr
            raise e
        sys.stderr = stderr
        tmp_file.flush()
        tmp_file.seek(0)
        self.assertEqual("Doesn't work.", str(sys.last_value))
	def accept(self):
		print ("*Accept*")
		variable = str(self.dialogUi.cb_discretizar_1.currentText())
		factor = str(self.dialogUi.cb_discretizar_2.currentText())

		if self.dialogUi.rb_cuartil.isChecked():
			ntiles = "4"
		elif self.dialogUi.rb_decil.isChecked():
			ntiles = "10"
		elif self.dialogUi.rb_percentil.isChecked():
			ntiles = "100"
		else:
			self.openAgregadoDialog()

		if (factor == "Sin factor"):
			comando = "datos.discretizados=discretiza.variable.fnc(datos, variable='" + variable + "',ntiles=" + ntiles + ")"
		else:
			comando = "datos.discretizados=discretiza.variable.fnc(datos, variable='" + variable + "', que.factor='" + factor + "',ntiles=" + ntiles + ")"


		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x)

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado))
		
		rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #3
0
    def acceptMediacion(self):
        print("*Accept*")

        vd = str(self.dialogUi.cb_dependiente.currentText())
        vi = str(self.dialogUi.cb_independiente.currentText())
        m = str(self.dialogUi.cb_moduladora.currentText())

        covariante = "c('"
        covariante = covariante + "', '".join(self.listMulti)
        covariante = covariante + "')"

        #tipo mediacion
        if self.dialogUi.rb_basic.isChecked():
            mediacion = "list(vd='" + vd + "',vi='" + vi + "',m='" + m + "')"
            comando = "analisis.mediacion.fnc(datos, " + mediacion + ")"
        elif self.dialogUi.rb_interac.isChecked():
            mediacion = "list(vd='" + vd + "',vi='" + vi + "',m='" + m + "')"
            comando = "analisis.mediacion.fnc(datos, " + mediacion + ", interaccion.vi.m=T)"
        elif self.dialogUi.rb_covariante.isChecked():
            mediacion = "list(vd='" + vd + "',vi='" + vi + "',m='" + m + "', covariante=" + covariante + ")"
            comando = "analisis.mediacion.fnc(datos, " + mediacion + ")"
        else:
            self.openMediacion()

        #ejecucion
        self.ui.text_result.append("> " + comando)

        def f(x):
            self.ui.text_result.textCursor().insertText(x.decode("utf8"))

        rinterface.set_writeconsole(f)
        resultado = robjects.r(comando)
        self.ui.text_result.append(str(resultado.decode("utf8")))

        rinterface.set_writeconsole(rinterface.consolePrint)
	def openDiscretizar(self):
		# Abro el dialogo
		self.dialogUi = self.d_discretizar
		self.dialogUi.setWindowTitle("Discretizar")
		self.dialogUi.show()

		# Inicializo los combobox
		def f(x):
			print x
		rinterface.set_writeconsole(f)
		n_items = "length(names(datos))"
		n_items = robjects.r(n_items)
		n_items = n_items[0]
		self.dialogUi.cb_discretizar_1.clear()
		self.dialogUi.cb_discretizar_2.clear()
		self.dialogUi.cb_discretizar_2.addItem(str("Sin factor"))
		for i in range(n_items):
			item_factor = "names(datos)[" + str(i+1) + "]"
			item_factor = robjects.r(item_factor)
			self.dialogUi.cb_discretizar_1.addItem(str(item_factor[0]))
			self.dialogUi.cb_discretizar_2.addItem(str(item_factor[0]))

		rinterface.set_writeconsole(rinterface.consolePrint)

		# Senyales de aceptar y cancelar
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("accepted()"), self.accept, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("rejected()"), self.cancel, QtCore.Qt.UniqueConnection)
    def setUp(self):
        self.console = rinterface.get_writeconsole()

        def noconsole(x):
            pass

        rinterface.set_writeconsole(noconsole)
Beispiel #6
0
    def openRecodificar(self):
        # Abro el dialogo
        self.dialogUi = self.d_recodificar
        self.dialogUi.setWindowTitle("Recodificar")
        self.dialogUi.show()

        # Inicializo los combobox
        def f(x):
            print x

        rinterface.set_writeconsole(f)
        n_items = "length(names(datos))"
        n_items = robjects.r(n_items)
        n_items = n_items[0]
        self.dialogUi.cb_variable_reco.clear()
        self.dialogUi.cb_variable_reco.addItem("**Variable no seleccionada**")
        for i in range(n_items):
            item_factor = "names(datos)[" + str(i + 1) + "]"
            item_factor = robjects.r(item_factor)
            self.dialogUi.cb_variable_reco.addItem(str(item_factor[0]))

        self.dialogUi.cb_variable_reco.currentIndexChanged.connect(
            self.changeComboBox)

        rinterface.set_writeconsole(rinterface.consolePrint)

        # Signals
        QtCore.QObject.connect(self.dialogUi.buttonBox,
                               QtCore.SIGNAL("accepted()"), self.accept,
                               QtCore.Qt.UniqueConnection)
        QtCore.QObject.connect(self.dialogUi.buttonBox,
                               QtCore.SIGNAL("rejected()"), self.cancel,
                               QtCore.Qt.UniqueConnection)
Beispiel #7
0
	def acceptIntragrupo(self):
		print ("*Accept*")

		fac_intra = "fac.intra=list("
		for i in range(self.dialogUi.table_factor.rowCount()):
			itemName = self.dialogUi.table_factor.item(i, 0).text()
			itemParams = self.dialogUi.table_factor.item(i, 1).text()
			fac_intra = fac_intra + itemName + "=" + itemParams
			if (i != self.dialogUi.table_factor.rowCount()-1):
				fac_intra = fac_intra + ", "

		fac_intra = fac_intra + ")"
		print fac_intra

		col_begin = self.dialogUi.col_begin.text()

		if self.dialogUi.check_graficas.isChecked():
			graficas = ", grafica=T"
		else:
			graficas = ", grafica=F"

		graficas = "" #hay un error en el toolbox que no permite ejecutar el comando

		comando = "Anova.fnc(datos, " + fac_intra + ", col.empieza.mr=" + col_begin + graficas + ")"

		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x.decode("utf8"))

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado.decode("utf8")))
		
		rinterface.set_writeconsole(rinterface.consolePrint)
    def setUp(self):
        self.console = rinterface.get_writeconsole()

        def noconsole(x):
            pass

        rinterface.set_writeconsole(noconsole)
	def openHistograma(self):
		self.dialogUi = self.d_histograma
		self.dialogUi.setWindowTitle("Histograma")
		self.dialogUi.show()

		# Abro el multiselector
		self.listMulti = []
		self.dialogUi.var_select.clear()
		QtCore.QObject.connect(self.dialogUi.pushMultiSelector, QtCore.SIGNAL("clicked()"), self.openMultiSelector, QtCore.Qt.UniqueConnection)

		# Inicializo los combobox
		def f(x):
			print x
		rinterface.set_writeconsole(f)
		n_items = "length(names(datos))"
		n_items = robjects.r(n_items)
		n_items = n_items[0]
		self.dialogUi.cb_variable.clear()
		for i in range(n_items):
			item_factor = "names(datos)[" + str(i+1) + "]"
			item_factor = robjects.r(item_factor)
			self.dialogUi.cb_variable.addItem(str(item_factor[0]))

		rinterface.set_writeconsole(rinterface.consolePrint)

		# Signals
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("accepted()"), self.acceptHistograma, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("rejected()"), self.cancel, QtCore.Qt.UniqueConnection)
Beispiel #10
0
    def openContrIntra(self):
        self.dialogUi = self.d_contr_intra
        self.dialogUi.setWindowTitle(("Contraste T intragrupo").decode("utf8"))
        self.dialogUi.show()

        # Inicializo los combobox
        def f(x):
            print x

        rinterface.set_writeconsole(f)
        n_items = "length(names(datos))"
        n_items = robjects.r(n_items)
        n_items = n_items[0]
        self.dialogUi.cb_var1.clear()
        self.dialogUi.cb_var2.clear()
        for i in range(n_items):
            item_factor = "names(datos)[" + str(i + 1) + "]"
            item_factor = robjects.r(item_factor)
            self.dialogUi.cb_var1.addItem(str(item_factor[0]))
            self.dialogUi.cb_var2.addItem(str(item_factor[0]))

        rinterface.set_writeconsole(rinterface.consolePrint)

        # Signals
        QtCore.QObject.connect(self.dialogUi.buttonBox,
                               QtCore.SIGNAL("accepted()"),
                               self.acceptIntragrupo,
                               QtCore.Qt.UniqueConnection)
        QtCore.QObject.connect(self.dialogUi.buttonBox,
                               QtCore.SIGNAL("rejected()"), self.cancel,
                               QtCore.Qt.UniqueConnection)
	def acceptPercentiles(self):
		print ("*Accept*")
		variable = str(self.dialogUi.cb_variable.currentText())
		factor = str(self.dialogUi.cb_factor.currentText())
		percentiles = self.dialogUi.le_percentiles.text()

		if (len(percentiles) > 0):
			percentiles = ", percentiles=c(" + percentiles + ")"
		else:
			percentiles = ""

		if (factor == "Sin factor"):
			comando = "percentiles.fnc(datos, variable='" + variable + "'" + percentiles + ")"
		else:
			comando = "percentiles.fnc(datos, variable='" + variable + "', que.factor='" + factor + "'" + percentiles + ")"


		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x)

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado))
		
		rinterface.set_writeconsole(rinterface.consolePrint)
	def openRegresionMultiple(self):
		self.dialogUi = self.d_regr_multiple
		self.dialogUi.setWindowTitle(("Regresión múltiple").decode("utf8"))
		self.dialogUi.show()

		# Abro el multiselector
		self.dialogUi.var_select.clear()
		QtCore.QObject.connect(self.dialogUi.pushMultiSelector, QtCore.SIGNAL("clicked()"), self.openMultiSelector, QtCore.Qt.UniqueConnection)

		# Inicializo los combobox
		def f(x):
			print x
		rinterface.set_writeconsole(f)
		n_items = "length(names(datos))"
		n_items = robjects.r(n_items)
		n_items = n_items[0]
		self.dialogUi.cb_vd.clear()
		for i in range(n_items):
			item_factor = "names(datos)[" + str(i+1) + "]"
			item_factor = robjects.r(item_factor)
			self.dialogUi.cb_vd.addItem(str(item_factor[0]))

		rinterface.set_writeconsole(rinterface.consolePrint)

		# Signals
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("accepted()"), self.acceptRegresion, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("rejected()"), self.cancel, QtCore.Qt.UniqueConnection)
Beispiel #13
0
	def acceptIntergrupo(self):
		print ("*Accept*")

		fac_inter = "c('"
		fac_inter = fac_inter + "', '".join(self.listMulti)
		fac_inter = fac_inter + "')"
		vd = str(self.dialogUi.cb_variable.currentText())

		if self.dialogUi.rb_tipo2.isChecked():
			tipo = ", tipo=2"
		elif self.dialogUi.rb_tipo3.isChecked():
			tipo = ", tipo=3"
		else:
			tipo = ""

		if self.dialogUi.rb_tipo3.isChecked():
			pdf = ", to.pdf=T"
		else:
			pdf = ""

		comando = "Anova.fnc(datos, fac.inter=" + fac_inter + ", vd='" + vd + "'" + tipo + pdf + ")"


		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x)

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado))
		
		rinterface.set_writeconsole(rinterface.consolePrint)
	def acceptMediacion(self):
		print ("*Accept*")

		vd = str(self.dialogUi.cb_dependiente.currentText())
		vi = str(self.dialogUi.cb_independiente.currentText())
		m = str(self.dialogUi.cb_moduladora.currentText())

		covariante = "c('"
		covariante = covariante + "', '".join(self.listMulti)
		covariante = covariante + "')"

		#tipo mediacion
		if self.dialogUi.rb_basic.isChecked():
			mediacion = "list(vd='" + vd + "',vi='" + vi + "',m='" + m + "')"
			comando = "analisis.mediacion.fnc(datos, " + mediacion + ")"
		elif self.dialogUi.rb_interac.isChecked():
			mediacion = "list(vd='" + vd + "',vi='" + vi + "',m='" + m + "')"
			comando = "analisis.mediacion.fnc(datos, " + mediacion + ", interaccion.vi.m=T)"
		elif self.dialogUi.rb_covariante.isChecked():
			mediacion = "list(vd='" + vd + "',vi='" + vi + "',m='" + m + "', covariante=" + covariante + ")"
			comando = "analisis.mediacion.fnc(datos, " + mediacion + ")"
		else:
			self.openMediacion()

		#ejecucion
		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x.decode("utf8"))

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado.decode("utf8")))
		
		rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #15
0
 def eval(self, line):
     '''
     Parse and evaluate a line of R code with rpy2.
     Returns the output to R's stdout() connection, 
     the value generated by evaluating the code, and a
     boolean indicating whether the return value would be
     visible if the line of code were evaluated in an R REPL.
     
     R Code evaluation and visibility determination are
     done via an R call of the form withVisible({<code>})
     
     '''
     old_writeconsole = ri.get_writeconsole()
     ri.set_writeconsole(self.write_console)
     try:
         res = ro.r("withVisible({%s})" % line)
         value = res[0]  #value (R object)
         visible = ro.conversion.ri2py(res[1])[0]  #visible (boolean)
     except (ri.RRuntimeError, ValueError) as exception:
         warning_or_other_msg = self.flush(
         )  # otherwise next return seems to have copy of error
         raise RInterpreterError(line, str_to_unicode(str(exception)),
                                 warning_or_other_msg)
     text_output = self.flush()
     ri.set_writeconsole(old_writeconsole)
     return text_output, value, visible
    def acceptFrecuencias(self):
        print("*Accept*")

        variables = "', '".join(self.listMulti)
        variables = "c('" + variables + "')"
        grafica = ""
        prop = ""

        if self.dialogUi.cb_grafica.isChecked():
            grafica = ", grafica=T"

        if self.dialogUi.cb_tabla.isChecked():
            variables = ":".join(self.listMulti)
            variables = "'" + variables + "'"

        if self.dialogUi.cb_frecuencias.isChecked():
            prop = ", prop=T"

        comando = "frecuencias.fnc(datos, variables=" + variables + grafica + prop + ")"

        self.ui.text_result.append("> " + comando)

        def f(x):
            self.ui.text_result.textCursor().insertText(x)

        rinterface.set_writeconsole(f)
        resultado = robjects.r(comando)
        self.ui.text_result.append(str(resultado))

        rinterface.set_writeconsole(rinterface.consolePrint)
	def openContrIntra(self):
		self.dialogUi = self.d_contr_intra
		self.dialogUi.setWindowTitle(("Contraste T intragrupo").decode("utf8"))
		self.dialogUi.show()

		# Inicializo los combobox
		def f(x):
			print x
		rinterface.set_writeconsole(f)
		n_items = "length(names(datos))"
		n_items = robjects.r(n_items)
		n_items = n_items[0]
		self.dialogUi.cb_var1.clear()
		self.dialogUi.cb_var2.clear()
		for i in range(n_items):
			item_factor = "names(datos)[" + str(i+1) + "]"
			item_factor = robjects.r(item_factor)
			self.dialogUi.cb_var1.addItem(str(item_factor[0]))
			self.dialogUi.cb_var2.addItem(str(item_factor[0]))

		rinterface.set_writeconsole(rinterface.consolePrint)

		# Signals
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("accepted()"), self.acceptIntragrupo, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("rejected()"), self.cancel, QtCore.Qt.UniqueConnection)
Beispiel #18
0
    def eval(self, line):
        '''
        Parse and evaluate a line of R code with rpy2.
        Returns the output to R's stdout() connection, 
        the value generated by evaluating the code, and a
        boolean indicating whether the return value would be
        visible if the line of code were evaluated in an R REPL.

        R Code evaluation and visibility determination are
        done via an R call of the form withVisible({<code>})

        '''
        old_writeconsole = ri.get_writeconsole()
        ri.set_writeconsole(self.write_console)
        try:
            res = ro.r("withVisible({%s\n})" % line)
            value = res[0]  # value (R object)
            visible = ro.conversion.ri2py(res[1])[0]  # visible (boolean)
        except (ri.RRuntimeError, ValueError) as exception:
            # otherwise next return seems to have copy of error
            warning_or_other_msg = self.flush()
            raise RInterpreterError(
                line, str_to_unicode(str(exception)), warning_or_other_msg)
        text_output = self.flush()
        ri.set_writeconsole(old_writeconsole)
        return text_output, value, visible
	def openPercentiles(self):
		self.dialogUi = self.d_percentiles
		self.dialogUi.setWindowTitle("Percentiles")
		self.dialogUi.show()

		# Inicializo los combobox
		def f(x):
			print x
		rinterface.set_writeconsole(f)
		n_items = "length(names(datos))"
		n_items = robjects.r(n_items)
		n_items = n_items[0]
		self.dialogUi.cb_variable.clear()
		self.dialogUi.cb_factor.clear()
		self.dialogUi.cb_factor.addItem(str("Sin factor"))
		for i in range(n_items):
			item_factor = "names(datos)[" + str(i+1) + "]"
			item_factor = robjects.r(item_factor)
			self.dialogUi.cb_variable.addItem(str(item_factor[0]))
			self.dialogUi.cb_factor.addItem(str(item_factor[0]))

		rinterface.set_writeconsole(rinterface.consolePrint)

		# Signals
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("accepted()"), self.acceptPercentiles, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("rejected()"), self.cancel, QtCore.Qt.UniqueConnection)
Beispiel #20
0
 def eval(self, line):
     """Evaluate a line or block of code in R
     
     Parameters
     ----------
     line : str
         The code to execute
     
     Examples
     --------
     >>> r.eval('''
     ... x = 1:5
     ... df = data.frame(x=x, y=x^2)
     ... print(df)
     ... ''')
       x  y
     1 1  1
     2 2  4
     3 3  9
     4 4 16
     5 5 25
     """
     old_writeconsole = ri.get_writeconsole()
     ri.set_writeconsole(self._write_console)
     try:
         value = ri.baseenv['eval'](ri.parse(line))
     except (ri.RRuntimeError, ValueError) as exception:
         warning_or_other_msg = self._flush() # otherwise next return seems to have copy of error
         raise RInterpreterError(line, str_to_unicode(str(exception)), warning_or_other_msg)
     text_output = self._flush()
     ri.set_writeconsole(old_writeconsole)
     
     if text_output:
         sys.stdout.write(unicode_to_str(text_output, 'utf-8'))
    def acceptMultivar(self):
        print("*Accept*")
        variables = "c('"
        variables = variables + "', '".join(self.listMulti)
        variables = variables + "')"
        factor = str(self.dialogUi.cb_factor.currentText())

        if (factor == "Sin factor"):
            factor = ""
        else:
            factor = ", que.factor='" + factor + "'"

        if self.dialogUi.check_tras.isChecked():
            traspuesta = ", traspuesta=T"
        else:
            traspuesta = ""

        if self.dialogUi.check_simple.isChecked():
            simple = ", simple=T"
        else:
            simple = ""

        comando = "descriptivos.fnc(OBrienKaiser, variables=" + variables + factor + traspuesta + simple + ")"

        self.ui.text_result.append("> " + comando)

        def f(x):
            self.ui.text_result.textCursor().insertText(x)

        rinterface.set_writeconsole(f)
        resultado = robjects.r(comando)
        self.ui.text_result.append(str(resultado))

        rinterface.set_writeconsole(rinterface.consolePrint)
	def openRecodificar(self):
		# Abro el dialogo
		self.dialogUi = self.d_recodificar
		self.dialogUi.setWindowTitle("Recodificar")
		self.dialogUi.show()

		# Inicializo los combobox
		def f(x):
			print x
		rinterface.set_writeconsole(f)
		n_items = "length(names(datos))"
		n_items = robjects.r(n_items)
		n_items = n_items[0]
		self.dialogUi.cb_variable_reco.clear()
		self.dialogUi.cb_variable_reco.addItem("**Variable no seleccionada**")
		for i in range(n_items):
			item_factor = "names(datos)[" + str(i+1) + "]"
			item_factor = robjects.r(item_factor)
			self.dialogUi.cb_variable_reco.addItem(str(item_factor[0]))

		self.dialogUi.cb_variable_reco.currentIndexChanged.connect(self.changeComboBox)

		rinterface.set_writeconsole(rinterface.consolePrint)

		# Signals
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("accepted()"), self.accept, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("rejected()"), self.cancel, QtCore.Qt.UniqueConnection)
Beispiel #23
0
    def testSetFlushConsole(self):
        flush = {'count': 0}
        def f():
            flush['count'] = flush['count'] + 1

        rinterface.set_flushconsole(f)
        self.assertEqual(rinterface.get_flushconsole(), f)
        rinterface.baseenv.get("flush.console")()
        self.assertEqual(1, flush['count'])
        rinterface.set_writeconsole(rinterface.consoleFlush)
	def acceptSegmentado(self):
		print ("*Accept*")
		comando = "x.factor=divide.por.factor.fnc(datos, que.factor='" + str(self.dSegmentadoUi.factorCombo.currentText()) + "')"
		self.ui.text_result.append("> " + comando)
		def f(x):
			print x
		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado))
		rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #25
0
    def testSetWriteConsole(self):
        buf = []
        def f(x):
            buf.append(x)

        rinterface.set_writeconsole(f)
        self.assertEqual(rinterface.get_writeconsole(), f)
        code = rinterface.SexpVector(["3", ], rinterface.STRSXP)
        rinterface.baseenv["print"](code)
        self.assertEqual('[1] "3"\n', str.join('', buf))
	def acceptRegresion(self):
		print ("*Accept*")

		#variables
		variables = "c('"
		variables = variables + "', '".join(self.listMulti)
		variables = variables + "')"

		#variable dependiente
		vd = str(self.dialogUi.cb_vd.currentText())

		#grafica
		if self.dialogUi.check_grafica.isChecked():
			grafica = ", grafica=T"
		else:
			grafica = ""

		#paso a paso
		if self.dialogUi.check_paso.isChecked():
			paso = ", paso.a.paso=T"
		else:
			paso = ""

		#robusta
		if self.dialogUi.check_robusta.isChecked():
			robusta = ", robusta=T"
		else:
			robusta = ""

		#dominancia
		if self.dialogUi.check_dominancia.isChecked():
			dominancia = ", dominancia=T"
		else:
			dominancia = ""

		#interaccion
		if self.dialogUi.check_interaccion.isChecked():
			interaccion = ", interaccion=T"
		else:
			interaccion = ""

		#comando
		comando = "regresion.multiple.fnc(datos, vd='" + vd + "', variables=" + variables + grafica + paso + robusta + dominancia + interaccion + ")"

		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x.decode("utf8"))

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado.decode("utf8")))
		
		rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #27
0
    def acceptRegresion(self):
        print("*Accept*")

        #variables
        variables = "c('"
        variables = variables + "', '".join(self.listMulti)
        variables = variables + "')"

        #variable dependiente
        vd = str(self.dialogUi.cb_vd.currentText())

        #grafica
        if self.dialogUi.check_grafica.isChecked():
            grafica = ", grafica=T"
        else:
            grafica = ""

        #paso a paso
        if self.dialogUi.check_paso.isChecked():
            paso = ", paso.a.paso=T"
        else:
            paso = ""

        #robusta
        if self.dialogUi.check_robusta.isChecked():
            robusta = ", robusta=T"
        else:
            robusta = ""

        #dominancia
        if self.dialogUi.check_dominancia.isChecked():
            dominancia = ", dominancia=T"
        else:
            dominancia = ""

        #interaccion
        if self.dialogUi.check_interaccion.isChecked():
            interaccion = ", interaccion=T"
        else:
            interaccion = ""

        #comando
        comando = "regresion.multiple.fnc(datos, vd='" + vd + "', variables=" + variables + grafica + paso + robusta + dominancia + interaccion + ")"

        self.ui.text_result.append("> " + comando)

        def f(x):
            self.ui.text_result.textCursor().insertText(x.decode("utf8"))

        rinterface.set_writeconsole(f)
        resultado = robjects.r(comando)
        self.ui.text_result.append(str(resultado.decode("utf8")))

        rinterface.set_writeconsole(rinterface.consolePrint)
    def testSetFlushConsole(self):
        flush = {'count': 0}

        def f():
            flush['count'] = flush['count'] + 1

        rinterface.set_flushconsole(f)
        self.assertEqual(rinterface.get_flushconsole(), f)
        rinterface.baseenv.get("flush.console")()
        self.assertEqual(1, flush['count'])
        rinterface.set_writeconsole(rinterface.consoleFlush)
Beispiel #29
0
	def guardarArchivo(self):
		fileName, _ = QtGui.QFileDialog.getSaveFileName(self.ui.mnu_archivo, "Guardar archivo", "", "Archivos de R (*.Rdata)")
		
		comando = "guarda.Rdata.fnc(datos, nombre='"+ fileName +"')"
		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x)

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #30
0
	def exportarArchivo(self):
		fileName, _ = QtGui.QFileDialog.getSaveFileName(self.ui.mnu_archivo, "Exortar archivo como txt", "", "Archivos de texto (*.txt)")
		
		comando = "exporta.txt.fnc(datos, nombre='"+ fileName +"')"
		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x)

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #31
0
    def initToolbox(self):
        def f(x):
            self.ui.text_result.textCursor().insertText(x)

        rinterface.set_writeconsole(f)
        backupList = robjects.globalenv.keys()
        resultado = robjects.r("source('./script/ULLRtoolbox.v.1.0.R')")
        currentList = robjects.globalenv.keys()

        if len(backupList) == len(currentList):
            self.ui.text_result.append(str(resultado))

        rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #32
0
	def initToolbox(self):
		def f(x):
			self.ui.text_result.textCursor().insertText(x)
		
		rinterface.set_writeconsole(f)
		backupList = robjects.globalenv.keys()
		resultado = robjects.r("source('./script/ULLRtoolbox.v.1.0.R')")
		currentList = robjects.globalenv.keys()
		
		if len(backupList) == len(currentList):
			self.ui.text_result.append(str(resultado))

		rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #33
0
    def acceptSegmentado(self):
        print("*Accept*")
        comando = "x.factor=divide.por.factor.fnc(datos, que.factor='" + str(
            self.dSegmentadoUi.factorCombo.currentText()) + "')"
        self.ui.text_result.append("> " + comando)

        def f(x):
            print x

        rinterface.set_writeconsole(f)
        resultado = robjects.r(comando)
        self.ui.text_result.append(str(resultado))
        rinterface.set_writeconsole(rinterface.consolePrint)
    def testSetWriteConsole(self):
        buf = []

        def f(x):
            buf.append(x)

        rinterface.set_writeconsole(f)
        self.assertEqual(rinterface.get_writeconsole(), f)
        code = rinterface.SexpVector([
            "3",
        ], rinterface.STRSXP)
        rinterface.baseenv["print"](code)
        self.assertEqual('[1] "3"\n', str.join('', buf))
	def openCorrelacion(self):
		self.dialogUi = self.d_correlacion
		self.dialogUi.setWindowTitle("Correlación".decode("utf8"))
		self.dialogUi.show()

		self.listMulti_1 = []
		self.listMulti_2 = []

		# Oculto todo lo necesario
		self.dialogUi.groupBox_2.setHidden(True)
		self.dialogUi.groupBox_3.setHidden(True)
		self.dialogUi.groupBox_4.setHidden(True)
		self.dialogUi.groupBox_5.setHidden(True)
		self.dialogUi.groupBox_6.setHidden(True)
		self.dialogUi.setFixedHeight(150)

		# 
		QtCore.QObject.connect(self.dialogUi.rb_pearsson, QtCore.SIGNAL("clicked()"), self.onClickPearsson, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.rb_policorica, QtCore.SIGNAL("clicked()"), self.onClickCorica, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.rb_tetracorica, QtCore.SIGNAL("clicked()"), self.onClickCorica, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.rb_parcial, QtCore.SIGNAL("clicked()"), self.onClickParcial, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.rb_semiparcial, QtCore.SIGNAL("clicked()"), self.onClickParcial, QtCore.Qt.UniqueConnection)


		# Abro los multiselectores
		self.dialogUi.var_select_1.clear()
		QtCore.QObject.connect(self.dialogUi.pushMultiSelector_1, QtCore.SIGNAL("clicked()"), self.openMultiSelector_1, QtCore.Qt.UniqueConnection)

		self.dialogUi.var_select_2.clear()
		QtCore.QObject.connect(self.dialogUi.pushMultiSelector_2, QtCore.SIGNAL("clicked()"), self.openMultiSelector_2, QtCore.Qt.UniqueConnection)


		# Inicializo los combobox
		def f(x):
			print x
		rinterface.set_writeconsole(f)
		n_items = "length(names(datos))"
		n_items = robjects.r(n_items)
		n_items = n_items[0]
		self.dialogUi.cb_factor.clear()
		self.dialogUi.cb_factor.addItem(str("Sin factor"))
		for i in range(n_items):
			item_factor = "names(datos)[" + str(i+1) + "]"
			item_factor = robjects.r(item_factor)
			self.dialogUi.cb_factor.addItem(str(item_factor[0]))

		rinterface.set_writeconsole(rinterface.consolePrint)

		# Signals
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("accepted()"), self.accept, QtCore.Qt.UniqueConnection)
		QtCore.QObject.connect(self.dialogUi.buttonBox, QtCore.SIGNAL("rejected()"), self.cancel, QtCore.Qt.UniqueConnection)
    def testWriteConsoleWithError(self):
        def f(x):
            raise CustomException("Doesn't work.")
        rinterface.set_writeconsole(f)

        tmp_file = tempfile.NamedTemporaryFile()
        stderr = sys.stderr
        sys.stderr = tmp_file
        try:
            code = rinterface.SexpVector(["3", ], rinterface.STRSXP)
            rinterface.baseenv["print"](code)
        except Exception, e:
            sys.stderr = stderr
            raise e
Beispiel #37
0
	def acceptSplit(self):
		print ("*Accept*")

		#fac.inter
		fac_inter = "c('"
		fac_inter = fac_inter + "', '".join(self.listMulti)
		fac_inter = fac_inter + "')"

		#fac.intra
		fac_intra = "fac.intra=list("
		for i in range(self.dialogUi.table_factor.rowCount()):
			itemName = self.dialogUi.table_factor.item(i, 0).text()
			itemParams = self.dialogUi.table_factor.item(i, 1).text()
			fac_intra = fac_intra + itemName + "=" + itemParams
			if (i != self.dialogUi.table_factor.rowCount()-1):
				fac_intra = fac_intra + ", "

		fac_intra = fac_intra + ")"
		print fac_intra

		#col.empieza
		col_begin = self.dialogUi.col_begin.text()

		#tipo de nivel
		if self.dialogUi.btn_tipo2.isChecked():
			tipo = ", tipo=2"
		elif self.dialogUi.btn_tipo3.isChecked():
			tipo = ", tipo=3"
		else:
			tipo = ""

		#ylim
		limit_sup = self.dialogUi.limit_sup.text()
		limit_inf = self.dialogUi.limit_inf.text()
		ylim = ", ylim=c(" + limit_inf + "," + limit_sup + ")"

		#comando
		comando = "Anova.fnc(datos, fac.inter=" + fac_inter + ", " + fac_intra + ", col.empieza.mr=" + col_begin + ylim + tipo + ")"

		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x.decode("utf8"))

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado.decode("utf8")))
		
		rinterface.set_writeconsole(rinterface.consolePrint)
	def acceptHistograma(self):
		print ("*Accept*")
		#variable
		variable = str(self.dialogUi.cb_variable.currentText())
		#factores
		if (len(self.listMulti) > 0):
			factores = ":".join(self.listMulti)
			factores = ", que.factor='" + factores + "'"
		else:
			factores = ""
		#orden -> orden=c(1,2)
		col = self.dialogUi.le_col.text()
		fil = self.dialogUi.le_fil.text()
		if (len(col) > 0):
			orden = ", orden=c(" + col + ", " + fil + ")"
		else:
			orden = ""

		#cortes -> cortes=c(-2,2)
		izda = self.dialogUi.le_izda.text()
		dcha = self.dialogUi.le_dcha.text()
		if (len(izda) > 0):
			cortes = ", cortes=c(" + izda + ", " + dcha + ")"
		else:
			cortes = ""

		#parametro tipificado
		if self.dialogUi.check_tipificados.isChecked():
			tipica = ", p.tipica=T"
		else:
			tipica = ""
		#parametro misma grafica
		if self.dialogUi.check_onlyone.isChecked():
			check = ", check=T"
		else:
			check = ""

		comando = "histograma.fnc(datos, vd='" + variable + "'" + factores + tipica + check + orden + cortes + ")"
		
		self.ui.text_result.append("> " + comando)

		def f(x):
			self.ui.text_result.textCursor().insertText(x)

		rinterface.set_writeconsole(f)
		resultado = robjects.r(comando)
		self.ui.text_result.append(str(resultado))
		
		rinterface.set_writeconsole(rinterface.consolePrint)
    def testChooseFileWithError(self):
        def noconsole(x):
            pass
        rinterface.set_writeconsole(noconsole) # reverted by the tearDown method
        def f(prompt):
            raise Exception("Doesn't work.")
        rinterface.set_choosefile(f)

        tmp_file = tempfile.NamedTemporaryFile()
        stderr = sys.stderr
        sys.stderr = tmp_file
        try:
            res = rinterface.baseenv["file.choose"]()
        except rinterface.RRuntimeError, rre:
            pass
Beispiel #40
0
    def insertCommand(self):
        comando = self.ui.edit_comandos.toPlainText()
        self.ui.text_result.append("> " + comando)

        def f(x):
            self.ui.text_result.textCursor().insertText(x)
        
        rinterface.set_writeconsole(f)
        backupList = robjects.globalenv.keys()
        resultado = robjects.r(comando)
        currentList = robjects.globalenv.keys()
        
        if len(backupList) == len(currentList):
            self.ui.text_result.append(str(resultado))

        rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #41
0
 def eval(self, line):
     '''
     Parse and evaluate a line with rpy2.
     Returns the output to R's stdout() connection
     and the value of eval(parse(line)).
     '''
     old_writeconsole = ri.get_writeconsole()
     ri.set_writeconsole(self.write_console)
     try:
         value = ri.baseenv['eval'](ri.parse(line))
     except (ri.RRuntimeError, ValueError) as exception:
         warning_or_other_msg = self.flush() # otherwise next return seems to have copy of error
         raise RInterpreterError(line, str_to_unicode(str(exception)), warning_or_other_msg)
     text_output = self.flush()
     ri.set_writeconsole(old_writeconsole)
     return text_output, value
    def testWriteConsoleWithError(self):
        def f(x):
            raise CustomException("Doesn't work.")

        rinterface.set_writeconsole(f)

        tmp_file = tempfile.NamedTemporaryFile()
        stderr = sys.stderr
        sys.stderr = tmp_file
        try:
            code = rinterface.SexpVector([
                "3",
            ], rinterface.STRSXP)
            rinterface.baseenv["print"](code)
        except Exception, e:
            sys.stderr = stderr
            raise e
Beispiel #43
0
 def eval(self, line):
     '''
     Parse and evaluate a line with rpy2.
     Returns the output to R's stdout() connection
     and the value of eval(parse(line)).
     '''
     old_writeconsole = ri.get_writeconsole()
     ri.set_writeconsole(self.write_console)
     try:
         value = ri.baseenv['eval'](ri.parse(line))
     except (ri.RRuntimeError, ValueError) as exception:
         warning_or_other_msg = self.flush() # otherwise next return seems to have copy of error
         raise RMagicError(unicode_to_str('parsing and evaluating line "%s".\nR error message: "%s"\n R stdout:"%s"\n' %
                                          (line, str_to_unicode(exception.message, 'utf-8'), warning_or_other_msg)))
     text_output = self.flush()
     ri.set_writeconsole(old_writeconsole)
     return text_output, value
Beispiel #44
0
 def eval(self, line):
     '''
     Parse and evaluate a line with rpy2.
     Returns the output to R's stdout() connection
     and the value of eval(parse(line)).
     '''
     old_writeconsole = ri.get_writeconsole()
     ri.set_writeconsole(self.write_console)
     try:
         value = ri.baseenv['eval'](ri.parse(line))
     except (ri.RRuntimeError, ValueError) as exception:
         warning_or_other_msg = self.flush(
         )  # otherwise next return seems to have copy of error
         raise RInterpreterError(line, str_to_unicode(str(exception)),
                                 warning_or_other_msg)
     text_output = self.flush()
     ri.set_writeconsole(old_writeconsole)
     return text_output, value
Beispiel #45
0
    def testWriteConsoleWithError(self):
        def f(x):
            raise CustomException("Doesn't work.")
        rinterface.set_writeconsole(f)

        tmp_file = tempfile.NamedTemporaryFile()
        stderr = sys.stderr
        sys.stderr = tmp_file
        try:
            code = rinterface.SexpVector(["3", ], rinterface.STRSXP)
            rinterface.baseenv["print"](code)
        except Exception as e:
            sys.stderr = stderr
            raise e
        sys.stderr = stderr
        tmp_file.flush()
        tmp_file.seek(0)
        self.assertEqual("Doesn't work.", str(sys.last_value))
    def acceptOpenNewVar2(self):
        comandR1 = "mi.lista=list("
        for i in range(self.dialogUi.factor_table.rowCount()):
            itemName = self.dialogUi.factor_table.item(i, 0).text()
            itemParams = self.dialogUi.factor_table.item(i, 1).text()
            print("itemName: " + itemName)
            print("itemParams" + itemParams)
            comandR1 = comandR1 + itemName + "=c(" + itemParams + ")"
            if (i != self.dialogUi.factor_table.rowCount() - 1):
                comandR1 = comandR1 + ", "

        comandR1 = comandR1 + ")"

        if self.dialogUi.nv_media.isChecked():
            print "media"
            comandR2 = "iqitems=compute.fnc(datos, variables=mi.lista)"
        elif self.dialogUi.nv_mediana.isChecked():
            print "mediana"
            comandR2 = "iqitems=compute.fnc(datos, variables=mi.lista, estadistico='mediana')"
        elif self.dialogUi.nv_suma.isChecked():
            print "suma"
            comandR2 = "iqitems=compute.fnc(datos, variables=mi.lista, estadistico='suma')"
        elif self.dialogUi.nv_sc.isChecked():
            print "sc"
            comandR2 = "iqitems=compute.fnc(datos, variables=mi.lista, estadistico='sc')"
        else:
            self.openNewVar2()

        def f(x):
            print x

        rinterface.set_writeconsole(f)

        print comandR1
        self.ui.text_result.append("> " + comandR1)
        comandR1 = robjects.r(comandR1)

        print comandR2
        self.ui.text_result.append("> " + comandR2)
        comandR2 = robjects.r(comandR2)

        self.ui.text_result.append(str(comandR2))
        rinterface.set_writeconsole(rinterface.consolePrint)
Beispiel #47
0
    def test_push_dataframe(self):
        df = pd.DataFrame([{'a': 1, 'b': 'bar'}, {'a': 5, 'b': 'foo', 'c': 20}])
        self.ip.push({'df':df})
        self.ip.run_line_magic('Rpush', 'df')

        # This is converted to factors, which are currently converted back to Python
        # as integers, so for now we test its representation in R.
        sio = StringIO()
        rinterface.set_writeconsole(sio.write)
        try:
            r('print(df$b[1])')
            self.assertIn('[1] bar', sio.getvalue())
        finally:
            rinterface.set_writeconsole(None)

        # Values come packaged in arrays, so we unbox them to test.
        self.assertEqual(r('df$a[2]')[0], 5)
        missing = r('df$c[1]')[0]
        assert np.isnan(missing), missing
Beispiel #48
0
    def testChooseFileWithError(self):
        def noconsole(x):
            pass

        rinterface.set_writeconsole(
            noconsole)  # reverted by the tearDown method

        def f(prompt):
            raise Exception("Doesn't work.")

        rinterface.set_choosefile(f)

        tmp_file = tempfile.NamedTemporaryFile()
        stderr = sys.stderr
        sys.stderr = tmp_file
        try:
            res = rinterface.baseenv["file.choose"]()
        except rinterface.RRuntimeError, rre:
            pass
    def acceptOpenNewVar3(self):
        fncAlgoritmica = self.dialogUi.fnc_algoritmica.toPlainText()

        def f(x):
            print x

        rinterface.set_writeconsole(f)

        comandR1 = "mi.expresion=" + fncAlgoritmica
        print comandR1
        self.ui.text_result.append("> " + comandR1)
        comandR1 = robjects.r(comandR1)

        comandR2 = "iqitems = compute.fnc(datos, expresion=mi.expresion)"
        print comandR2
        self.ui.text_result.append("> " + comandR2)
        comandR2 = robjects.r(comandR2)

        self.ui.text_result.append(str(comandR2))
        rinterface.set_writeconsole(rinterface.consolePrint)
    def acceptOpenNewVar1(self):
        nameNewVar = self.dialogUi.new_var_1.text()
        initNewVar = self.dialogUi.init_var.text()

        def f(x):
            print x

        rinterface.set_writeconsole(f)

        for i in range(self.dialogUi.nivel_table.rowCount()):
            comandR1 = ""
            comandR2 = "datos$" + nameNewVar + "='" + initNewVar + "'"
            comandR3 = "datos["
            for j in range(self.dialogUi.nivel_table.columnCount() - 1):
                varCond = self.listMulti[j]
                comandR1 = "datos$" + varCond + "=recode(datos$" + varCond + ", \"NA=-999\")"
                print comandR1
                self.ui.text_result.append("> " + comandR1)
                comandR1 = robjects.r(comandR1)
                self.ui.text_result.append(str(comandR1))

                itemContent = self.dialogUi.nivel_table.item(i, j + 1).text()
                comandR3 = comandR3 + "datos$" + itemContent
                if (self.dialogUi.nivel_table.rowCount() - 1 == j):
                    comandR3 = comandR3 + " & "
                else:
                    reomandR3 + ", "
            nameCond = self.dialogUi.nivel_table.item(i, 0).text()
            comandR3 = comandR3 + "]$" + nameNewVar + "='" + nameCond + "'"

            print comandR2
            self.ui.text_result.append("> " + comandR2)
            comandR2 = robjects.r(comandR2)
            self.ui.text_result.append(str(comandR2))

            print comandR3
            self.ui.text_result.append("> " + comandR3)
            comandR3 = robjects.r(comandR3)
            self.ui.text_result.append(str(comandR3))

        rinterface.set_writeconsole(rinterface.consolePrint)