阅读中文(GB2312)数据

时间:2012-10-26 17:03:32

标签: r

我正在尝试阅读带有中文文本的csv文件。该文件应如下所示:

userid,jobid,Title,companyid,industryids1
82497,1160,互联网产品经理,12
96429,658,企划经理(商业公司),24
14471,95,产品运营经理,25,6
14471,1708,产品营销高级经理,727,2
14471,1558,产品总监,611,4
14471,1777,产品总监,743,1
14471,1697,产品经理,725,234
14471,1716,度假产品总监 ,730,234
14471,1717,产品经理,730,5

但是当我使用read.csv()读取数据时,它在R控制台中看起来像这样:

  userid jobid                Title companyid industryids1
1  82497  1160       »¥ÁªÍø²úÆ·¾­Àí        12           NA
2  96429   658 Æó»®¾­Àí£¨ÉÌÒµ¹«Ë¾£©        24           NA
3  14471    95         ²úÆ·ÔËÓª¾­Àí        25            6
4  14471  1708     ²úÆ·ÓªÏú¸ß¼¶¾­Àí       727            2
5  14471  1558             ²úÆ·×Ü¼à       611            4
6  14471  1777             ²úÆ·×Ü¼à       743            1
7  14471  1697             ²úÆ·¾­Àí       725          234
8  14471  1716        ¶È¼Ù²úÆ·×Ü¼à        730          234
9  14471  1717             ²úÆ·¾­Àí       730            5

我怎样才能正确阅读?

会话信息:

R version 2.14.1 (2011-12-22)
Platform: x86_64-pc-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     
loaded via a namespace (and not attached):
[1] tools_2.14.1

2 个答案:

答案 0 :(得分:1)

这些字符在Windows-1252 encoding中是否可以表示?我对此表示怀疑。当R在LOCALE中运行时,你需要将它改为那些字符编码才有意义的,例如UTF-8。

您的示例适用于我在Linux上的合适区域设置(使用UTF-8):

> df <- read.csv(text = "userid,jobid,Title,companyid,industryids1
+ 82497,1160,互联网产品经理,12
+ 96429,658,企划经理(商业公司),24
+ 14471,95,产品运营经理,25,6
+ 14471,1708,产品营销高级经理,727,2
+ 14471,1558,产品总监,611,4
+ 14471,1777,产品总监,743,1
+ 14471,1697,产品经理,725,234
+ 14471,1716,度假产品总监 ,730,234
+ 14471,1717,产品经理,730,5", header = TRUE)
> df
  userid jobid                Title companyid industryids1
1  82497  1160       互联网产品经理        12           NA
2  96429   658 企划经理(商业公司)        24           NA
3  14471    95         产品运营经理        25            6
4  14471  1708     产品营销高级经理       727            2
5  14471  1558             产品总监       611            4
6  14471  1777             产品总监       743            1
7  14471  1697             产品经理       725          234
8  14471  1716        度假产品总监        730          234
9  14471  1717             产品经理       730            5

我的sessionInfo()是:

> sessionInfo()
R version 2.15.2 RC (2012-10-22 r60997)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_GB.utf8       LC_NUMERIC=C             
 [3] LC_TIME=en_GB.utf8        LC_COLLATE=en_GB.utf8    
 [5] LC_MONETARY=en_GB.utf8    LC_MESSAGES=en_GB.utf8   
 [7] LC_PAPER=C                LC_NAME=C                
 [9] LC_ADDRESS=C              LC_TELEPHONE=C           
[11] LC_MEASUREMENT=en_GB.utf8 LC_IDENTIFICATION=C      

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

loaded via a namespace (and not attached):
[1] tools_2.15.2

因此,您似乎要么告诉R使用不同的编码/区域设置,要么R Windows FAQ建议您尝试使用包含处理所需编码的R GUI控制台的字体。

答案 1 :(得分:0)

我在WIN7(64位)下使用RStudio(版本3.1.2)。我在中文文本挖掘时所做的是将系统语言设置为中文(简体中文)。

  1. 控制面板 - &gt;地区和语言 - &gt;格式 - &gt;中文(简体中文)
  2. 控制面板 - &gt;地区和语言 - &gt;行政 - &gt;更改系统区域设置... - &gt;中文(简体中文)
  3. 然后我可以查看系统信息:

    > sessionInfo()
    R version 3.1.2 (2014-10-31)
    Platform: x86_64-w64-mingw32/x64 (64-bit)
    
    locale:
    [1] LC_COLLATE=Chinese (Simplified)_People's Republic of China.936 
    [2] LC_CTYPE=Chinese (Simplified)_People's Republic of China.936   
    [3] LC_MONETARY=Chinese (Simplified)_People's Republic of China.936
    [4] LC_NUMERIC=C                                                   
    [5] LC_TIME=Chinese (Simplified)_People's Republic of China.936    
    
    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base     
    
    other attached packages:
    [1] lubridate_1.3.3 tmcn_0.1-3     
    
    loaded via a namespace (and not attached):
     [1] bitops_1.0-6   digest_0.6.8   httr_0.6.1     memoise_0.2.1 
     [5] plyr_1.8.1     Rcpp_0.11.3    RCurl_1.95-4.5 Rwordseg_0.2-1
     [9] stringr_0.6.2  swirl_2.2.21   testthat_0.9.1 tools_3.1.2   
    [13] yaml_2.1.13   
    

    同样,将RStudio中编码的所有内容设置为UTF-8

    1. 文件 - &gt;重新打开编码 - &gt; UTF-8
    2. 文件 - &gt;使用编码保存 - &gt; UTF-8
    3. 工具 - &gt;全球 - &gt;一般 - &gt;默认文字编码 - &gt; UTF-8
    4. 然后读取/保存带有中文字符的脚本并在控制台上打印它们应该没有问题。但我不得不说,使用如上所述的语言环境语言,警告&amp;错误信息也出现在汉字中......

      > library(dfsaf)
      Error in library(dfsaf) : 不存在叫‘dfsaf’这个名字的程辑包
      

      祝你好运