caracteres especiais em R
Eu estou trabalhando em ser capaz de ler transcrições de diálogos em R. No entanto, eu corro em um galo com caracteres especiais como aspas encaracoladas en e em traços etc. Normalmente eu substituir esses caracteres especiais em um produto microsoft primeiro comreplace
. Normalmente eu substituo caracteres especiais por texto simples, mas em algumas ocasiões desejo substituí-los por outros caracteres (ie eu substituo "" por {}). Isso é tedioso e nem sempre completo. Se eu pudesse ler as transcrições em R como estão e, em seguida, usar Encoding para mudar sua codificação para um formato unicode reconhecível, eu poderiagsub
-los e substituí-los por versões de texto simples. No entanto, o arquivo é lido de alguma forma que eu não entendo. Aqui está um xlsx de como meus dados podem parecer:
http://dl.dropbox.com/u/61803503/test.xlsx
Isso é o que está no arquivo .xlsx
text num
“ ” curly quotes 1
en dash (–) and the em dash (—) 2
‘ ’ curly apostrophe-ugg 3
… ellipsis are uck in R 4
Isso pode ser lido em R com:
URL <- "http://dl.dropbox.com/u/61803503/test.xlsx"
library(gdata)
z <- read.xls(URL, stringsAsFactors = FALSE)
O resultado é:
text num
1 “ †curly quotes 1
2 en dash (–) and the em dash (—) 2
3 ‘ ’ curly apostrophe-ugg 3
4 … ellipsis are uck in R 4
Então eu tentei usarEncoding
para converter em Unicode:
iconv(z[, 1], "latin1", "UTF-8")
Isto dá:
[1] "â\u0080\u009c â\u0080\u009d curly quotes" "en dash (â\u0080\u0093) and the em dash (â\u0080\u0094)"
[3] "â\u0080\u0098 â\u0080\u0099 curly apostrophe-ugg" "â\u0080¦ ellipsis are uck in R"
O que torna o gsubing menos útil.
O que posso fazer para converter esses caracteres especiais em um unicode distinto, para que eu possa utilizá-los apropriadamente? Para ser mais explícito, eu esperava terz[1, 1]
ler:
\u201C 2\u01D curly quotes
Para tornar ainda mais claro o meu resultado desejado, vou criar uma nova tabela para as páginas de uma página como a da Wikipédia:http://en.wikipedia.org/wiki/Quotation_mark_glyphs e use o gráfico de referência unicode para substituir os caracteres adequadamente. Então eu preciso que os personagens estejam em unicode ou algum formato padrão que eu possa passar sistematicamente e substituir os caracteres. Talvez já seja e eu estou perdendo isso.
PS Não salvei os arquivos como .csv ou texto simples porque os caracteres especiais foram substituídos por?
daí o uso deread.xls
Eu não estou ligado a nenhum método particular de leitura no arquivo (ieread.xls
) se você tem uma alternativa melhor.