Бенгальский ввод данных в R - PullRequest
0 голосов
/ 29 апреля 2019

[ОБНОВЛЕНО С НЕКОТОРЫМИ ДАННЫМИ И ПРОБНЫМ КОДОМ]

У меня есть немного чисел в бенгальском формате Юникод.Хочу разработать несколько графиков с данными.Но R читает данные как «символ» вместо «числовой».Как сделать так, чтобы R читал данные как «Числовые».Спасибо.

Моя таблица данных выглядит следующим образом:

"সংখ্যা"    "বছর"
৩৪,৭০৮    ২০১১
৩২,৮১০    ২০১২
৩২,৮৯৪    ২০১৪

Я преобразовал оба столбца в числовой с помощью функции as.numeric:

mb$`“সংখ্যা”` <- as.numeric(mb$`“সংখ্যা”`)
mb$`“বছর”` <- as.numeric(mb$`“বছর”`)  

Класс былпреобразован с предупреждением:

Warning message:
NAs introduced by coercion

Затем я попытался построить гистограмму:

ggplot(mb, aes("বছর", "সংখ্যা"))+
geom_bar(stat = "identity", width=0.3)

Это привело к следующему: введите описание изображения здесь


следовал коду Рохита, затем попытался нарисовать гистограмму:

ggplot(mb, aes(x="বছর", y="সংখ্যা"))+
geom_bar(stat = "identity")

Не сработало, ссылка на изображение: введите описание изображения здесь

Затем нарисовал график с данными на английском языке, он работал нормально:

ggplot(mbe, aes(x=year, y=number))+
geom_bar(stat = "identity")

изображение графика: введите описание изображения здесь

Любое замечание / предложение?

1 Ответ

0 голосов
/ 29 апреля 2019

Сначала необходимо преобразовать числа в английский / латинский эквивалент. Вы можете сделать это, используя библиотеку stringi. Затем вы можете изменить их на цифры, используя as.numeric()

n <- '১০৫'
library(purrr)
library(stringi)
n %>% stri_trans_general('Bengali-Latin') %>%as.numeric()
# [1] 105

Редактировать: для предоставленных вами данных вы можете сделать что-то вроде этого:

    mb
    # সংখ্যা  বছর
    # 1 ৩৪,৭০৮ ২০১১
    # 2 ৩২,৮১০ ২০১২
    # 3 ৩২,৮৯৪ ২০১৪
    library(dplyr)
    library(stringi)
    mb <- mb %>%
      mutate_all(function(x){ # mutate_all will apply the function to all columns of mb
        x %>%
          stri_trans_general('Bengali-Latin') %>% # convert to latin charset
          gsub(pattern = ',',replacement = '')%>% # Commas need to be removed
          as.numeric()
      })
    # সংখ্যা  বছর
    # 1 34708 2011
    # 2 32810 2012
    # 3 32894 2014

Редактировать: для сюжета ваши имена столбцов имеют бенгальский и кавычки, поэтому они должны быть заключены в обратные черты:

ggplot(mb,aes(`"বছর"`,`"সংখ্যা"`))+
  geom_col()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...