Parse_date(带有西里尔符号的语言:uk、ru、bg、by...)通过使用 hms (tidyverse)
Parse_date (languages with cyrillic symbols: uk, ru, bg, by...) by using 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_names都在。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"
我忘了添加我的答案。
当您使用西里尔符号时 - 函数 iconv()
真的很有帮助。
查看有关 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"
我也很高兴看到其他解决方案。
我正在尝试在 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_names都在。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"
我忘了添加我的答案。
当您使用西里尔符号时 - 函数 iconv()
真的很有帮助。
查看有关 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"
我也很高兴看到其他解决方案。