Я попытался написать воспроизводимый пример ниже. Это смесь .Rmd и .r. Надеюсь, вы понимаете, почему.
Моя проблема заключается в том, что неанглийские символы обрабатываются по-разному в зависимости от того, запускается ли код непосредственно в консоли или когда он привязан к HTML.
В приведенном ниже примере я создаю небольшой data.frame с символами ü и ö, записываю его в csv, а затем снова читаю.
Если и запись, и чтение происходят внутри или вне блока, тогда все в порядке.
Но если запись и чтение происходят в разных местах, то используется другая кодировка (я думаю). и персонажи путаются.
Это означает, что при чтении данных мне нужна другая кодировка при компиляции файла .Rmd, чем при работе непосредственно в R.
Насколько я понимаю, локаль всегда одна и та же, поэтому я не понимаю, что происходит.
Любые идеи?
Напишите и прочтите csv напрямую, чтобы создать новый файл данных
df2 <- data.frame(Cäl1 = c(1,2), Col2 = c("ü","a"))
write.csv(df2, file="df2.csv")
read.csv("df2.csv")
Sys.getlocale(category = "LC_ALL")
Теперь попробуйте связать весь документ (просто запуск чанка ведет себя по-другому)
```{r read_inside}
read.csv("df2.csv")
Sys.getlocale(category = "LC_ALL")
```
этот второй фрагмент будет работать, потому что data.frame создается внутри фрагмента
```{r write_read_inside}
df2 <- data.frame(Cäl1 = c(1,2), Col2 = c("ü","a"))
write.csv(df2, file="df2.csv")
read.csv("df2.csv")
Sys.getlocale(category = "LC_ALL")
```
Информация о сеансе:
R version 2.15.0 (2012-03-30)
Platform: x86_64-pc-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_2.15.0
write.csv(..., fileEncoding = 'UTF-8')
(не проверено) - person Yihui Xie   schedule 25.06.2012options(encoding = 'native.enc')
в вашем R-коде, но я все же рекомендую последовательно использовать UTF-8. - person Yihui Xie   schedule 25.06.2012