我正在尝试在 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
这段代码对我有用,所以我分享它:
Sys.setlocale("LC_CTYPE", "arabic" )
write.csv(group$message, file = 'posts.txt', fileEncoding = "UTF-8")
如果将文件另存为 csv,它将不起作用。您必须将其另存为txt。
您必须安装并使用语言环境。这很困难,有时甚至不起作用。
这里提供了一些解决方案和代码:写入数据并不保留编码
请记住,您实际上必须为您的操作系统安装语言包,而对于某些 Windows 版本,根本没有任何单独可用的语言包。
这已经晚了 10 年,但我遇到了类似的问题,并决定发布我的解决方案,以防将来对其他人有帮助。
我的解决方案是使用包“openxlsx”。
首先,您需要安装 openxlsx 软件包(如果尚未安装):
library(openxlsx)
然后,您可以修改代码以使用 UTF-8 编码编写 xlsx 文件而不是 csv,如下所示:
write.xlsx(my.data,"data.xlsx", rowNames = FALSE, showNA = FALSE, encoding = "UTF-8")
希望这对某人有帮助!