2017-01-13 5 views
1

У меня есть большой набор данных в формате csv для построения модели прогнозирования. Из-за его размера я планировал использовать h2o пакет в R, чтобы построить модель. Однако данные в нескольких столбцах data.frame содержат некоторые китайские упрощенные символы, и h2o испытывает трудности с получением данных.R H2O пакет импорта csv файл с китайскими иероглифами

Я пробовал два разных подхода. Первый подход включал прямое чтение из файла с использованием функции h2o.importFile() для импорта данных. Однако этот подход сводит китайские символы к некоторым грязным кодам.

Второй подход, который я попытался первым привести данные в R используя readr и основание R read_csv/read.csv функции. После правильной загрузки данных в R, я попытался преобразовать data.frame в рамку h2o с использованием функции as.h2o. Хотя, конечный результат этого подхода также привел к перепутанному переводу.

Чтобы проиллюстрировать это, я написал следующую часть кодов в качестве примера:

require(h2o) 
dat<-data.frame(x=rep(c("北京","上海"),50), 
       y=rnorm(mean=10,sd=3,n=100)) 
h2o.init(nthreads=-1) 
h2o.dat<-as.h2o(dat) 

ответ

1

я не знаю, если это лучший способ, но я работал на Корейском данных раньше, и это процесс, который я обычно следовать. Во-первых, убедитесь, что данные, которые необходимо прочитать, кодируются как «UTF-8». Во-вторых, убедитесь, что задан язык на английский

Sys.getlocale(category="LC_ALL") 

Вы можете прочитать файл, используя формулировку ниже,

dat <- read.csv("Test.txt",header=T,encoding = "UTF-8",stringsAsFactors = F) 

dat[,1] 
[1] "北京" "上海" "北京" "上海" 

dat 
     X.U.FEFF.X Y 
1 <U+5317><U+4EAC> 1 
2 <U+4E0A><U+6D77> 2 
3 <U+5317><U+4EAC> 3 
4 <U+4E0A><U+6D77> 4 

Как вы можете видеть, когда вы смотрите весь data.frame вам видеть их как «UTF-8», но вы также можете посмотреть на китайские персонажи, просмотрев с помощью df[1,] и глядя на каждый вектор.

+0

Привет @ ab90hi, спасибо за ваш совет. На самом деле, у меня не возникло проблем с чтением исходного набора данных в R и отображением их в качестве соответствующих китайских символов, используя read_csv от dplyr. Задача состоит в том, чтобы импортировать или преобразовать исходный набор данных в H2OFrame и показать их соответствующим образом. –

1

Ваша проблема связана только с тем, что R не показывает кодированный символ внутри кадров H2O, однако данные внутри h2o-кадров все еще полностью сохранены, как в исходном кадре. Как только вы используете H2O Web/FLOW UI и увидите рамку h2o, вы увидите, что данные внутри кадра h2o точно такие же, как и исходный. На следующем рисунке показаны результаты в различных местоположениях т.е. RStudio, окна представления R и в H2O FLOW UI

enter image description here

Пожалуйста, перейдите по ссылке ниже для получения раствора, однако вы должны быть в состоянии обновить местных жителей в вашей машине, чтобы посмотреть те символы в кадрах данных H2O:

how to read data in utf-8 format in R?

1

Я считаю, что это ошибка, поскольку data.frame АиРа может отображать символы, но в то же время, R H2OFrame не может. Я проверил, что это работает для H2OFrames в Python, так что это только R-проблема. Я подал ошибку here.