• R语言
  • [已解决]Rmarkdown中使用中文,跳出警告

tctcab 根据您的截图,我检查了一下我的设置,发现是相同的。project的功能之前没用过,所以project options是灰的,刚刚创建了一个project,用的是三种方式里的第一种(new directory),版本控制和代码移植的问题,之前没有接触过,目前只是发现新建了一个文件夹,以及,多了一个后缀名为.Rproj的文件,其他功能一切如常。

版本控制一定得早点用起来,越早越好,好处实在是太多了。目前最流行的版本控制系统应该是git 和 github了吧。

使用版本控制的理由参见SO上的这个回答

而且Rstudio完全整合了版本控制,可以方便地使用git和github,完全没有不用的道理。

不用就不和你玩了啊!!!

    1 个月 后

    yihui 如果没有其他莽撞人愿意出手,你可以标记一下你的日历,一个月后再来提醒我。

    大神,不知不觉已经一个月了。。。

      ChristopherShen 我仍然没多少时间,但我可以给你开个价:我可以抽时间帮你,如果我能解决这个问题,我希望你也能帮帮我,以下几个我维护的包中,你任选一个 Github issue 帮我解决掉(如果是纯问题,就帮我回答一下,如果问得不清楚你可以吼他;如果是漏洞,就帮我修正):

      https://github.com/yihui/knitr/issues
      https://github.com/rstudio/rmarkdown/issues
      https://github.com/rstudio/DT/issues
      https://github.com/rstudio/bookdown/issues
      https://github.com/rstudio/blogdown/issues

      如果我解决不了你的问题,你就什么都不用管了。如何?

      2018 年我打算厚颜无耻用这种传销手段了,我若再不找人来帮我、只是单纯输出我的劳力,我迟早会被这些事情搞崩溃。说到底,就是我用我的痛苦跟你的痛苦交换,哈哈。

        yihui 点开看了几个,发现我连人家问什么都不是很清楚,唉,算了,虽然很希望能融入大神的圈子,但终究还是有心无力啊。。。

          ChristopherShen

          试着重复了一下你的问题,rmarkdown里改用中文目录名和中文文件名之后果然不能用了。所以确保文件名里没有中文我觉得是更容易的解决方案。

          这个错误跟你的很像吧:

          > knitr::opts_chunk$set(echo = TRUE)
          Warning message:
          In dir.create(tempPath, recursive = TRUE) :
            cannot create dir 'C:\Users\TC\GIT\??', reason 'Invalid argument'

            tctcab 我平时的目录和文件名里面都有中文,基本功能都正常,导出成pdf也可以,就是每次执行命令都会条一个warning出来,有些烦人。

              11 天 后

              ChristopherShen 其实我估计这个问题真正要修复可能只需要十分钟,如果我的猜测没错的话,应该是缺少一个 Encoding(code) <- 'UTF-8'。类似的问题我以前修补过:https://github.com/rstudio/rstudio/pull/416/files 这个提示加上我上面的搜索提示,应该足够让一个普通 R 用户开始修复这个问题了。幸运的是这个问题不需要重新编译 RStudio,你可以在安装目录下找到那个 R 文件直接修改,改完了重启 RStudio 就可以测试了。

              我暂时只能帮到这里了。

                Cloud2016 三个文件(NotebookAlternateEngines.R、SessionRmdNotebook.R、SessionCodeTools.R),我逐一在本地搜索,第一个文件我没有,另外两个有;然后打开文件以后搜索“code”,在code之前或之后加上了Encoding(code) <- 'UTF-8',因为感觉不太放心,所以差不多真的是每个code附近都加了。现在测试以后果然正常了!!!?我怕对导出pdf有影响,所以又试了一次,导出也正常!?

                yihui 大神说得对啊,一定要造福后人!可惜我水平有限(GitHub账号都是刚刚才注册的?),幸好有Cloud2016 帮我翻译了一下大神的意思,要不然我还在乱试。