1

我正在尝试读取包含中文文本的 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
4

2 回答 2

1

这些字符甚至可以在Windows-1252 编码中表示吗?我对此表示怀疑。由于 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 常见问题解答建议您尝试为 R GUI 控制台使用一种字体,其中包含对所需编码的处理。

于 2012-10-26T19:40:43.040 回答
0

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

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

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

> 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

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

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

祝你好运

于 2015-01-16T06:25:10.590 回答