2014年8月16日星期六

R Studio Console 乱码

> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-w64-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_3.1.1
显然是不对的,我在区域和语言选项里面的非 Unicode 程序里面选的是中文,所以对应地
> Sys.setlocale("LC_ALL","Chinese")
就可以了
[update]
  • "LC_ALL" 是偷懒的做法,真正起作用的是其中的 "LC_CTYPE"。副作用就是有部分输出会变中文,R Studio 的错的说,这货不是正经的 Unicode 程序。
  • 这种修改方式只对当前 session 有效,要永久的话去建立一个 .Rprofile 文件丢 R Studio 的配置文件夹或者项目文件夹下面,还可以预载入常用的包:
    .First<-function(){
    Sys.setlocale("LC_CTYPE","Chinese")
    }

14 条评论:

  1. 找了好久这个问题终于解决了 so good!

    回复删除
  2. > sessionInfo()
    R version 3.1.2 (2014-10-31)
    Platform: x86_64-w64-mingw32/x64 (64-bit)

    locale:
    [1] LC_COLLATE=Chinese (Simplified)_China.936
    [2] LC_CTYPE=Chinese (Simplified)_China.936
    [3] LC_MONETARY=Chinese (Simplified)_China.936
    [4] LC_NUMERIC=C
    [5] LC_TIME=Chinese (Simplified)_China.936

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

    other attached packages:
    [1] fBasics_3011.87 timeSeries_3012.99 timeDate_3012.100

    loaded via a namespace (and not attached):
    [1] tools_3.1.2


    我的session本来就是中文了, 可还是乱码呀T T

    回复删除
    回复
    1. 区域和语言选项里面的非 Unicode 程序选的是简中么?

      删除
  3. 感谢,解决了困扰很久的问题!

    回复删除
  4. 被困好久了——有效!谢谢!请问 RStudio 的配置文件夹在哪里?是那个 default working directory 吗?

    回复删除
    回复
    1. 是的,那个是全局,也可以放到项目文件夹下面

      删除
  5. 您好,根据您的方法,当次可以,但是在重启之后依然会出现乱码,这个应该怎么解决呢

    回复删除
    回复
    1. 用 Rprofile,文中有提

      删除
    2. 我是新学R软件的,所以不是特别能看得懂,能再说的细一点么,谢谢

      删除
    3. .Rprofile 文件是要先建一个txt文件,然后把代码写进去之后再改文件类型名字到rprofile么?

      删除
  6. 我也遇到了同样的问题,不知道怎么能解决,studi语言已经是中文了,还是乱码怎么办。

    回复删除
  7. Sys.setlocale(locale="Chinese (Simplified)_People's Republic of China.936")
    dtmxi<-TermDocumentMatrix(temp)
    dtmxi<-removeSparseTerms(dtmxi, 0.83)
    inspect(t(dtmxi))
    这样一个程序,我在运行前还专门进行了中文设置。结果依然乱码。
    Weighting : term frequency (tf)
    Sample :
    Terms
    Docs 鐨<84> 鍙戝睍 绛<89> 鏀归潻 鏄 寤鸿 瑕<81> 鍜<8c> 缁忔祹 鎺ㄨ繘
    1 227 147 62 64 64 68 61 200 85 61

    之前没有乱码,我重启了笔记本,再开启程序,居然乱码了。

    回复删除