我正在尝试阅读带有中文文本的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
答案 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)。我在中文文本挖掘时所做的是将系统语言设置为中文(简体中文)。
然后我可以查看系统信息:
> 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
然后读取/保存带有中文字符的脚本并在控制台上打印它们应该没有问题。但我不得不说,使用如上所述的语言环境语言,警告&amp;错误信息也出现在汉字中......
> library(dfsaf)
Error in library(dfsaf) : 不存在叫‘dfsaf’这个名字的程辑包
祝你好运