[R-es] Encoding y (r)Jython.-

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Dic 13 02:53:34 CET 2011


Hola, ¿qué tal?

Usando rPython, funciona:

> library( rPython )
Loading required package: RJSONIO
> python.exec( "trans_table = ''.join( [chr(i) for i in range(128)] + ['?'] * 128 )" )
> python.get( "trans_table" )
[1] ""
> python.exec( "def ascii(s):
+     if isinstance(s, unicode):
+         return s.encode('ascii', 'replace')
+     else:
+         return s.translate(trans_table)" )
>
> python.call( "ascii", "señoría" )
[1] "se?or?a"

Si estás en Linux, puedes instalarlo como se indica en

http://www.datanalytics.com/blog/2011/05/24/se-buscan-alpha-testers-para-rpython/

El problema con rJython es que usa otro mecanismo de conexión con Python:

> ?jython.assign
>      rJython <- rJython()
> jython.assign( rJython, "a", "ñ" )
Error in jython.exec(rJython, jython.command) :
  'utf-8' codec can't decode byte 0xf1 in position 0: unexpected end of data

que parece que se lleva mal con los encodings.

Usa rPython. Trataré de arreglar el otro, aunque me gustaría poder reemplazarlo.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com


El día 11 de diciembre de 2011 15:05, Freddy López
<freddy.vate01 en gmail.com> escribió:
> Hola don Carlos,
>
> Estoy sobre linux mint 11 (Platform: x86_64-pc-linux-gnu (64-bit)), R
> version 2.14.0, rJython versión: 0.0-2, y Jython 2.5.2, (Release_2_5_2:7206,
> OpenJDK 64-Bit Server VM (Sun Microsystems Inc.) on java1.6.0_22).
>
> Si dejé pasar alguna información, por favor no dude en hacérmelo saber.
>
> ¡Salud!
>
> 2011/12/11 Carlos J. Gil Bellosta <cgb en datanalytics.com>
>
>> Hola, ¿qué tal?
>>
>> Lo voy a mirar. ¿En qué plataforma estás trabajando?
>>
>> Un saludo,
>>
>> Carlos J. Gil Bellosta
>> http://www.datanalytics.com
>>
>>
>> El día 11 de diciembre de 2011 08:14, Freddy López
>> <freddy.vate01 en gmail.com> escribió:
>> > Hola,
>> >
>> > Tengo un problemillo con el encoding de unas palabras y trabajarlas en R
>> > por medio de rJython.
>> >
>> > Os explico: cuando quiero utilizar cualquier dato que contenga acentos o
>> > eñes o cualquiera de estos caracteres que no usan los angloparlantes
>> > obtengo un error. Ejemplo, en R:
>> >
>> >> jython.call(rJython,'ascii','señoría')
>> > Error en jython.exec(rJython, jython.command) :
>> >  'utf-8' codec can't decode bytes in position 2-5: invalid data
>> >
>> > donde la función ascii es tal cual está definida en este enlace:
>> >
>> > http://stackoverflow.com/questions/1342000/how-to-replace-non-ascii-characters-in-string
>> > .
>> >
>> > Pero si trabajo directamente en Jython (o python) obtengo:
>> >
>> >>>> ascii('señoría')
>> > 'se??or??a'
>> >
>> > que es lo que realmente espero.
>> >
>> > He probado infructuosamente cambiar el encoding de las palabra (dentro
>> > de
>> > R) con iconv() y no he tenido buen resultado.
>> >
>> > ¿Alguien habrá tenido alguna experiencia semejante o conocerá la
>> > solución?
>> >
>> > Gracias.
>> >
>> > --
>> > «But Gwindor answered: 'The doom lies in yourself, not in your name.'»
>> >
>> > JRR Tolkien
>> >
>> >        [[alternative HTML version deleted]]
>> >
>> >
>> > _______________________________________________
>> > R-help-es mailing list
>> > R-help-es en r-project.org
>> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >
>
>
>
>
> --
> «But Gwindor answered: 'The doom lies in yourself, not in your name.'»
>
> JRR Tolkien
>



Más información sobre la lista de distribución R-help-es