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