String com um espaço que não é espaço

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

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@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@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.

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@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@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@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@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.

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@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@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@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@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@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@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.

gsub("[[:blank:]]+", "\\+", cidade) [1] "Águas Lindas+de+Goiás"
save(loucura, file='caracter_loucura.RData')
*Já estou quase desistindo. Pra quem tiver curiosidade segue anexo o arquivo caracter_loucura.RData* Em 5 de março de 2012 12:35, Benilton Carvalho <beniltoncarvalho@gmail.com>escreveu:
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@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@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@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@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@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@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@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.

Resultado do emacs: character: (160, #o240, #xa0) preferred charset: unicode (Unicode (ISO10646)) code point: 0xA0 syntax: . which means: punctuation category: .:Base, b:Arabic, j:Japanese, l:Latin buffer code: #xC2 #xA0 file code: #xC2 #xA0 (encoded by coding system utf-8-unix) display: by this font (glyph code) nil:-apple-Courier-medium-normal-normal-*-18-*-*-*-m-0-iso10646-1 (#xA6) hardcoded face: nobreak-space Character code properties: customize what to show name: NO-BREAK SPACE old-name: NON-BREAKING SPACE general-category: Zs (Separator, Space) decomposition: (noBreak 32) (noBreak ' ') dai', no meu teste: txt = paste("meu" , "texto", sep=loucura) gsub("\\xA0", "\\+", txt) com o resultado: [1] "meu+texto" b 2012/3/5 Lucas Barbosa <lucasbcr@gmail.com>:
gsub("[[:blank:]]+", "\\+", cidade) [1] "Águas Lindas+de+Goiás"
save(loucura, file='caracter_loucura.RData')
Já estou quase desistindo. Pra quem tiver curiosidade segue anexo o arquivo caracter_loucura.RData
Em 5 de março de 2012 12:35, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
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@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@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@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@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@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@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@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@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.

curiosamente: gsub("[[:blank:]]", "\\+", loucura) funciona sem problemas pra mim...
sessionInfo() R Under development (unstable) (2012-01-11 r58090) Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale: [1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8 attached base packages: [1] stats graphics grDevices datasets utils methods base other attached packages: [1] RColorBrewer_1.0-5 BiocInstaller_1.1.28 loaded via a namespace (and not attached): [1] tools_2.15.0 2012/3/5 Benilton Carvalho <beniltoncarvalho@gmail.com>:
Resultado do emacs:
character: (160, #o240, #xa0) preferred charset: unicode (Unicode (ISO10646)) code point: 0xA0 syntax: . which means: punctuation category: .:Base, b:Arabic, j:Japanese, l:Latin buffer code: #xC2 #xA0 file code: #xC2 #xA0 (encoded by coding system utf-8-unix) display: by this font (glyph code) nil:-apple-Courier-medium-normal-normal-*-18-*-*-*-m-0-iso10646-1 (#xA6) hardcoded face: nobreak-space
Character code properties: customize what to show name: NO-BREAK SPACE old-name: NON-BREAKING SPACE general-category: Zs (Separator, Space) decomposition: (noBreak 32) (noBreak ' ')
dai', no meu teste:
txt = paste("meu" , "texto", sep=loucura) gsub("\\xA0", "\\+", txt)
com o resultado:
[1] "meu+texto"
b
2012/3/5 Lucas Barbosa <lucasbcr@gmail.com>:
gsub("[[:blank:]]+", "\\+", cidade) [1] "Águas Lindas+de+Goiás"
save(loucura, file='caracter_loucura.RData')
Já estou quase desistindo. Pra quem tiver curiosidade segue anexo o arquivo caracter_loucura.RData
Em 5 de março de 2012 12:35, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
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@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@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@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@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@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@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@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@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.

no R-2.14.1 tambem... 2012/3/5 Benilton Carvalho <beniltoncarvalho@gmail.com>:
curiosamente:
gsub("[[:blank:]]", "\\+", loucura)
funciona sem problemas pra mim...
sessionInfo() R Under development (unstable) (2012-01-11 r58090) Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale: [1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages: [1] stats graphics grDevices datasets utils methods base
other attached packages: [1] RColorBrewer_1.0-5 BiocInstaller_1.1.28
loaded via a namespace (and not attached): [1] tools_2.15.0
2012/3/5 Benilton Carvalho <beniltoncarvalho@gmail.com>:
Resultado do emacs:
character: (160, #o240, #xa0) preferred charset: unicode (Unicode (ISO10646)) code point: 0xA0 syntax: . which means: punctuation category: .:Base, b:Arabic, j:Japanese, l:Latin buffer code: #xC2 #xA0 file code: #xC2 #xA0 (encoded by coding system utf-8-unix) display: by this font (glyph code) nil:-apple-Courier-medium-normal-normal-*-18-*-*-*-m-0-iso10646-1 (#xA6) hardcoded face: nobreak-space
Character code properties: customize what to show name: NO-BREAK SPACE old-name: NON-BREAKING SPACE general-category: Zs (Separator, Space) decomposition: (noBreak 32) (noBreak ' ')
dai', no meu teste:
txt = paste("meu" , "texto", sep=loucura) gsub("\\xA0", "\\+", txt)
com o resultado:
[1] "meu+texto"
b
2012/3/5 Lucas Barbosa <lucasbcr@gmail.com>:
gsub("[[:blank:]]+", "\\+", cidade) [1] "Águas Lindas+de+Goiás"
save(loucura, file='caracter_loucura.RData')
Já estou quase desistindo. Pra quem tiver curiosidade segue anexo o arquivo caracter_loucura.RData
Em 5 de março de 2012 12:35, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
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@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@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@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@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@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@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@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@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.

> gsub("\\xA0|[ \t\n\r\f\v]", "\\+", cidade) [1] "Águas+Lindas+de+Goiás" * Não acredito que finalmente deu certo. Preciso aprender a usar esse Emacs. Valeu, Benilton! * Em 5 de março de 2012 13:34, Benilton Carvalho <beniltoncarvalho@gmail.com>escreveu: > Resultado do emacs: > > character: (160, #o240, #xa0) > preferred charset: unicode (Unicode (ISO10646)) > code point: 0xA0 > syntax: . which means: punctuation > category: .:Base, b:Arabic, j:Japanese, l:Latin > buffer code: #xC2 #xA0 > file code: #xC2 #xA0 (encoded by coding system utf-8-unix) > display: by this font (glyph code) > nil:-apple-Courier-medium-normal-normal-*-18-*-*-*-m-0-iso10646-1 (#xA6) > hardcoded face: nobreak-space > > Character code properties: customize what to show > name: NO-BREAK SPACE > old-name: NON-BREAKING SPACE > general-category: Zs (Separator, Space) > decomposition: (noBreak 32) (noBreak ' ') > > > dai', no meu teste: > > txt = paste("meu" , "texto", sep=loucura) > gsub("\\xA0", "\\+", txt) > > com o resultado: > > [1] "meu+texto" > > > b > > 2012/3/5 Lucas Barbosa <lucasbcr@gmail.com>: > >> gsub("[[:blank:]]+", "\\+", cidade) > > [1] "Águas Lindas+de+Goiás" > > > >> save(loucura, file='caracter_loucura.RData') > > > > Já estou quase desistindo. Pra quem tiver curiosidade segue anexo o > arquivo > > caracter_loucura.RData > > > > Em 5 de março de 2012 12:35, Benilton Carvalho < > beniltoncarvalho@gmail.com> > > escreveu: > > > >> 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@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@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@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@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@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@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@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@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@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. >

2012/3/5 Lucas Barbosa <lucasbcr@gmail.com>:
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:
Pode ser um "espaço não separável". No Libre Office, pode ser produzido com Ctrl+Shift+Space; no Vim, com <C-v>160; no LaTeX, com ~ (til); em html, com ...
participantes (3)
-
Benilton Carvalho
-
Jakson Alves de Aquino
-
Lucas Barbosa