parse_date(使用西里尔文符号的语言:UK、Ru、BG、By.)通过使用HMS(Tidyverse) [英] Parse_date (languages with cyrillic symbols: uk, ru, bg, by...) by using hms (tidyverse)

查看:21
本文介绍了parse_date(使用西里尔文符号的语言:UK、Ru、BG、By.)通过使用HMS(Tidyverse)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试解析R(库(HMS))中的日期。 英语、德语、法语等都能很好地解析。 F.E.:

    parse_date("1 Januar 2015", "%d %B %Y", locale = locale("de"))
    [1] "2015-01-01"
但是,如果我尝试解析由西里尔符号(UK,ru,bg,by.)编写的包含月份的数据.等等,-我有个错误 F.E.:

   parse_date("1 січня  2015", "%d %B %Y", locale = locale("uk"))
   Warning: 1 parsing failure.
   row col           expected                           actual
   1  -- date like %d %B %Y 1 <f1><U+00B3><f7><ed><ff>  2015
   [1] NA

或者这个:

  parse_date("31 януари 2011","%d %B %Y",locale=locale("bg"))
  Warning: 1 parsing failure.
  row col           expected                           actual
  1  -- date like %d %B %Y 31 <ff><ed><f3><e0><f0><e8> 2011
  [1] NA

data_name都在中。F.E.:

    date_names_lang("bg")
    <date_names>
    Days:   неделя (нд), понеделник (пн), вторник (вт), сряда (ср), четвъртък (чт), петък
    (пт), събота (сб)
    Months: януари (ян.), февруари (февр.), март (март), април (апр.), май (май), юни (юни),
    юли (юли), август (авг.), септември (септ.), октомври (окт.), ноември
    (ноем.), декември (дек.)
    AM/PM:  пр.об./сл.об.

我应该如何解决此问题?谢谢。

我找到了一个解决方案(在Windows中)。也许你也可以提出你的建议。F.E.:

    date_test <- iconv("1 януари 2021","Windows-1251","UTF-8")
    date_test
    [1] "1 януари 2021"
    parse_date(date_test, "%d %B %Y", locale = locale("bg"))
    [1] "2021-01-01"
    date_test <- iconv("1 січня 2021","Windows-1251","UTF-8")
    date_test
    [1] "1 січня 2021"
    parse_date(date_test, "%d %B %Y", locale = locale("uk"))
    [1] "2021-01-01"
    date_test <- iconv("1 января 2021","Windows-1251","UTF-8")
    date_test
    [1] "1 января 2021"
    parse_date(date_test, "%d %B %Y", locale = locale("ru"))
    [1] "2021-01-01"
    date_test <- iconv("1 янв. 2021","Windows-1251","UTF-8")
    date_test
    [1] "1 янв. 2021"
    parse_date(date_test, "%d %b %Y", locale = locale("ru"))
    [1] "2021-01-01"

推荐答案

我忘了添加答案。

当您使用西里尔文符号时-functioniconv()非常有用。

请参阅有关iconv()功能here的详细信息。

我在上面添加了一些示例。还有一个用白俄罗斯文(locale("be"))用R!

    library(tidyverse)

    date_test <- iconv("24 жніўня 2021", "Windows-1251", "UTF-8")
    parse_date(date_test, "%d %B %Y", locale = locale("be"))

    # [1] "2021-08-24"

    date_test <- iconv("11:15:10.12 пасля палудня", "Windows-1251", "UTF-8")
    parse_time(date_test, "%H:%M:%OS %p", locale = locale("be"))

    # [1] "23:15:10.12"

我也很高兴看到其他解决方案。

这篇关于parse_date(使用西里尔文符号的语言:UK、Ru、BG、By.)通过使用HMS(Tidyverse)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆