首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取中文(GB2312)数据

读取中文(GB2312)数据
EN

Stack Overflow用户
提问于 2012-10-27 01:03:32
回答 2查看 2.2K关注 0票数 1

我正在尝试读取一个包含中文文本的csv文件。该文件应如下所示:

代码语言:javascript
运行
复制
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控制台中看起来像这样:

代码语言:javascript
运行
复制
  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

我怎样才能正确地读入这段代码?

会话信息:

代码语言:javascript
运行
复制
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
EN

回答 2

Stack Overflow用户

发布于 2012-10-27 03:40:43

这些字符在Windows-1252 encoding中是否可表示?我怀疑。由于R在该地区运行,您需要将其更改为那些字符编码确实有意义的地区,例如UTF-8。

您的示例在Linux上合适的语言环境中为我工作(使用UTF-8):

代码语言:javascript
运行
复制
> 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()是:

代码语言:javascript
运行
复制
> 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常见问题解答建议您尝试为R GUI控制台使用一种包含所需编码处理的字体。

票数 1
EN

Stack Overflow用户

发布于 2015-01-16 14:25:11

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

  1. 控制面板->区域和语言->格式->中文(简体,中华人民共和国)
  2. 控制面板->区域和语言->管理->更改系统区域设置...->中文(简体中文)

然后我可以检查系统信息:

代码语言:javascript
运行
复制
> 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. 文件->使用编码重新打开-> UTF-8
  2. 文件->使用编码保存-> UTF-8
  3. 工具->全局->常规->默认文本编码-> UTF-8

那么在控制台上读取/保存带有中文字符的脚本并打印应该没有问题。但是我不得不说,使用如上设置的语言,警告和错误消息也会以中文出现……

代码语言:javascript
运行
复制
> library(dfsaf)
Error in library(dfsaf) : 不存在叫‘dfsaf’这个名字的程辑包

祝好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13091279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档