У меня проблема с несогласованным кодированием символьного вектора в R.
Текстовый файл, который я прочитал из таблицы, закодирован (через Notepad++
) в UTF-8
(я тоже пытался с UTF-8 without BOM
.).
Я хочу прочитать таблицу из этого текстового файла, конвертировать его data.table
, установить key
и использовать двоичный поиск. Когда я попытался сделать это, появилось следующее:
Предупреждающее сообщение: В
[.data.table
(poli.dt, "żżonymi", mult = "first" ): Известная кодировка (latin1 или UTF-8) была обнаружена в столбце объединения. data.table сравнивает байты в настоящее время, поэтому не поддерживает смешанные кодировки хорошо; то есть с использованием как latin1, так и UTF-8, или если любые неизвестные кодировки не являются ascii, и некоторые из них отмечены как известные, так и другие нет. Но если используется только latin1 или UTF-8, и все неизвестные кодировки являются ascii, тогда результат должен быть в порядке. В будущем мы проверим вас и избегаем этого предупреждения, если все будет в порядке. сложная часть делает это, не влияя на производительность только для ascii-only случаев.
и двоичный поиск не работает.
Я понял, что мой столбец data.table
- key
состоит из следующих типов: "unknown" и "UTF-8":
> table(Encoding(poli.dt$word))
unknown UTF-8
2061312 2739122
Я попытался преобразовать этот столбец (перед созданием объекта data.table
) с помощью:
-
Encoding(word) <- "UTF-8"
-
word<- enc2utf8(word)
но без эффекта.
Я также пробовал несколько разных способов чтения файла в R (установка всех полезных параметров, например encoding = "UTF-8"
):
-
data.table::fread
-
utils::read.table
-
base::scan
-
colbycol::cbc.read.table
но без эффекта.
=============================================== ===
My R.version:
> R.version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 0.3
year 2014
month 03
day 06
svn rev 65126
language R
version.string R version 3.0.3 (2014-03-06)
nickname Warm Puppy
Моя информация о сеансе:
> sessionInfo()
R version 3.0.3 (2014-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=Polish_Poland.1250 LC_CTYPE=Polish_Poland.1250 LC_MONETARY=Polish_Poland.1250
[4] LC_NUMERIC=C LC_TIME=Polish_Poland.1250
base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.9.2 colbycol_0.8 filehash_2.2-2 rJava_0.9-6
loaded via a namespace (and not attached):
[1] plyr_1.8.1 Rcpp_0.11.1 reshape2_1.2.2 stringr_0.6.2 tools_3.0.3