阿拉伯文文本CSV文件导入?

6
我似乎无法彻底解决这个问题,我想读取一个包含阿拉伯字符的csv文件,但它不能正确地读取。
这是我的sessionInfo。
R version 3.2.4 Revised (2016-03-16 r70336)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

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] dplyr_0.4.3 plyr_1.8.3 

loaded via a namespace (and not attached):
[1] magrittr_1.5   R6_2.1.2       assertthat_0.1 parallel_3.2.4 DBI_0.3.1           tools_3.2.4   
[7] Rcpp_0.12.4 

我试过这个。
ar <- read.csv (file.choose(),  encoding = "UTF-8") 

这个
ar <- read.csv (file.choose(),  encoding = "Windows-1256")

“对我来说行不通,我还尝试将语言环境设置为阿拉伯语,但没有成功。”
Sys.setlocale("LC_ALL","Arabic")

任何建议?

尝试使用 fileEncoding 参数而不是 encoding - Thomas
@Thomas 我尝试了UTF-8文件编码,结果还是一样。 - Rayan Sp
@Thomas 但是当我尝试使用Arabic-1256时,出现了以下错误:警告信息: 1:在读取表格时发现无效输入连接“D:\CALL_END_DATA_FEB16_040416.txt” 2:在读取表头时,在“location.txt”上找到不完整的最终行 - Rayan Sp
我认为你的文件中最后一行不是一个空的换行符。 - chinsoon12
@RayanSp 这些是警告,而不是错误,所以代码应该已经成功了(尽管可能看起来不像您想要的那样)。 - Thomas
显示剩余2条评论
1个回答

0

您可以使用readLines函数并设置参数warn = FALSE来读取文件,然后执行以下代码,将text参数设置为readLines的结果,即可使用read.csv函数读取文件。

arabic.csv内容:

LabelName,Label1,Label2,SpeciesLabel,Group,Subgroup,Species
التسمية 1,Group 1,Subgroup 1,Species 1,1,1,1
التسمية 2,Group 1,Subgroup 1,Species 1,1,1,1
التسمية 3,Group 1,Subgroup 1,Species 1,1,1,1

R 读取 csv 文件的代码

arabic <- readLines("arabic.csv", warn = FALSE, encoding = "UTF-8")
Data <- read.csv(text = arabic)
str(Data)
Output:

'data.frame':   3 obs. of  7 variables:
 $ X.U.FEFF.LabelName: Factor w/ 3 levels "التسمية 1","التسمية 2",..: 1 2 3
 $ Label1            : Factor w/ 1 level "Group 1": 1 1 1
 $ Label2            : Factor w/ 1 level "Subgroup 1": 1 1 1
 $ SpeciesLabel      : Factor w/ 1 level "Species 1": 1 1 1
 $ Group             : int  1 1 1
 $ Subgroup          : int  1 1 1
 $ Species           : int  1 1 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接