从 R 导出阿拉伯文本

问题描述 投票:0回答:3

我正在尝试在 R 中导出包含阿拉伯文本的数据框。

当 R 导入阿拉伯文本时,它会将其转换为 UTF-8 代码。像这样:

     <U+0627><U+0644><U+0641><U+0631><U+0639> <U+0627><U+0644><U+062A><U+0634><U+0631><U+064A><U+0639><U+064A><U+060C> <U+0627><U+0644><U+0641><U+0631><U+0639> <U+0627><U+0644><U+062A><U+0646><U+0641><U+064A><U+0630><U+064A><U+060C><U+0627><U+0644><U+0641><U+0631><U+0639> <U+0627><U+0644><U+0642><U+0636><U+0627><U+0626><U+064A>. <U+0627><U+0644><U+062D><U+0643><U+0648><U+0645><U+0629> <U+0627><U+0644><U+0641><U+062F><U+0631><U+0627><U+0644><U+064A>

不幸的是,导出时我无法将其转回可读的阿拉伯语。下面是我正在使用的代码...

    write.csv(my.data,"data.csv", fileEncoding='UTF-8') 

有人有解决办法吗?

此外,这是我的会话信息。

R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] ggplot2_0.9.3.1

loaded via a namespace (and not attached):
[1] colorspace_1.2-2   dichromat_2.0-0    digest_0.6.3       grid_3.0.1   gtable_0.1.2      
[6] labeling_0.2       MASS_7.3-27        munsell_0.4.2      plyr_1.8           proto_0.3-10      
[11] RColorBrewer_1.0-5 reshape2_1.2.2     scales_0.2.3       stringr_0.6.2      tools_3.0.1       
r encoding utf-8 arabic rstudio
3个回答
5
投票

这段代码对我有用,所以我分享它:

Sys.setlocale("LC_CTYPE", "arabic" )

write.csv(group$message, file = 'posts.txt', fileEncoding = "UTF-8")

如果将文件另存为 csv,它将不起作用。您必须将其另存为txt。


2
投票

您必须安装并使用语言环境。这很困难,有时甚至不起作用。

这里提供了一些解决方案和代码:写入数据并不保留编码

请记住,您实际上必须为您的操作系统安装语言包,而对于某些 Windows 版本,根本没有任何单独可用的语言包。


0
投票

这已经晚了 10 年,但我遇到了类似的问题,并决定发布我的解决方案,以防将来对其他人有帮助。

我的解决方案是使用包“openxlsx”。

首先,您需要安装 openxlsx 软件包(如果尚未安装):

library(openxlsx)

然后,您可以修改代码以使用 UTF-8 编码编写 xlsx 文件而不是 csv,如下所示:

write.xlsx(my.data,"data.xlsx", rowNames = FALSE, showNA = FALSE, encoding = "UTF-8")

希望这对某人有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.