[R-br] String com um espaço que não é espaço

Benilton Carvalho beniltoncarvalho em gmail.com
Segunda Março 5 12:35:31 BRT 2012


Hmmm...

Eu ainda tentaria algo como:

gsub("[[:blank:]]+", "\\+", cidade)

e, falhando tudo, abriria o arquivo de origem dos dados no meu bom e
velho Emacs e usaria describe-char para tentar entender a fonte do
probelma.

b

2012/3/5 Lucas Barbosa <lucasbcr em gmail.com>:
>> Encoding(cidade)
> [1] "unknown"
>> cidade <- enc2native(cidade)
>>
>> cidade
>
> [1] "Águas Lindas de Goiás"
>>
>> Encoding(cidade)
> [1] "unknown"
>
>>
>> gsub( "[ \t\n\r\f\v]" , "\\+", cidade)
> [1] "Águas Lindas+de+Goiás"
>>
>> gsub( "[ \t\n\r\f\v]" , "\\+", cidade, useBytes=T)
> [1] "Águas Lindas+de+Goiás"
>
> O pior é que eu consigo imprimir o "loucura" na tela, copiar e colar:
>
>> loucura
> [1] " "     # " " copiado
>> gsub( " " , "\\+", cidade) # " " colado
> [1] "Águas+Lindas de Goiás"
>
> Existe alguma função que receba um caracter e retorne o código unicode dele
> ou algo assim?
>
>
> Em 5 de março de 2012 11:10, Benilton Carvalho <beniltoncarvalho em gmail.com>
> escreveu:
>
>> Parece algo de codificacao de caracteres... Qual o resultado de:
>>
>> Encoding(cidade)
>>
>> ?
>>
>> E se vc converter 'cidade'?
>>
>> cidade <- enc2native(cidade)
>>
>> e tentar a partir dai'?
>>
>> Ou, possivelmente, usar gsub() com useBytes=TRUE ?
>>
>> b
>>
>> 2012/3/5 Lucas Barbosa <lucasbcr em gmail.com>:
>> > Bom dia pessoal,
>> >
>> > Estou escrevendo um código para calcular a distancia entre cidades
>> > brasileiras com o gmaps. Para construir os links eu preciso trocar os
>> > espaços por "+" nos nomes das cidades.
>> > Nos meus dados (uma lista de cidades) algumas strings contém um caracter
>> > que
>> > parece um espaço em branco, mas não se comporta como tal:
>> >
>> >> cidades[[47]][[3]]
>> > [1] "Águas Lindas de Goiás"
>> >>
>> >> cidade <- cidades[[47]][[3]]
>> >>
>> >> strsplit( cidade ,"[ \t\n\r\f\v]")
>> > [[1]]
>> > [1] "Águas Lindas" "de"           "Goiás"
>> >>
>> >> gsub( "[ \t\n\r\f\v]" , "\\+", cidade)
>> > [1] "Águas Lindas+de+Goiás"
>> >>
>> >> loucura <- substr(cidade, 6, 6)
>> >>
>> >> gsub( loucura , "\\+", cidade)
>> > [1] "Águas+Lindas de Goiás"
>> >>
>> >> gsub( sprintf("[%s \t\n\r\f\v]", loucura) , "\\+", cidade)
>> > [1] "Águas+Lindas+de+Goiás"
>> >
>> > Eu consegui resolver o problema (trocar espaços por "+"), mas gostaria
>> > de
>> > escrever meu código sem extrair o caracter "loucura" com a substr().
>> >
>> > Se não é [ \t\n\r\f\v], o que é? Alguém tem uma dica?
>> >
>> > Abs.,
>> > Lucas Cusinato
>> >
>> > _______________________________________________
>> > R-br mailing list
>> > R-br em listas.c3sl.ufpr.br
>> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> > código
>> > mínimo reproduzível.
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.


Mais detalhes sobre a lista de discussão R-br