请问R语言怎样在spacemace里面使用?

我已经找了好久了没有找到,希望能有一些提示。 谢谢。

启动ess layer 非spacemacs用户只能帮到这里了

dotspacemacs-configuration-layers里加上

(ess :variables
     ess-assign-key "\M--")

同为R用户,表示还是RStudio好用,虽然Emacs风格快捷键做的跟XX一样。

Ess啊,我个人感觉比Rstudio好用太多了,evaluate lines or regions, 和R shell交互很舒服,Rmarkdown支持可能rstudio更好些?还没怎么写过Rmd. 这个对S语言也支持非常好。加上key-combo,写R太舒服了

典型的数学或工科语言,主要都是自己敲代码,补全就那么点,都做的挺好,IDE可给的功能没什么,所以编辑效率就成了首选,这也是为什么Emacs比Rstudio 给我感觉更爽,各种snippets 和key-combo这类小工具可以让你写R非常舒服

我主要是做生物数据的分析,IDE能预览各种图,这个是Emacs给不了的。

说到Rmd,主要是knitr太方便了,写起来倒是跟平常的md没啥区别,我感觉反而Emacs比RStudio更舒服。

我是想着说不同程序的话我写在一个orgmode里面。我是经济学的所以图的话可以另外出。

哦,多谢,一直没了解什么支持Rmd. 我用R也是一般帮合作者处理biomed 数据。

图不是都执行语句画出来嘛?Rstudio 在右下角(默认layout )嵌入显示,ess默认弹窗显示,没差吧?(一定用emacs内部buffer显示也可以的,我喜欢弹窗显示)难道你说的预览是别的什么?Jupiter notebook那种内嵌成文档的?我没怎么用过Rmd,有见tutorial 是类似功能,我上面说Rstudio支持Rmarkdown 更好 就是指这个。

重要的是bebug,Rstudio 是一般的ide风格,很多人不习惯gdb这种风格的话,可能不太适应Emacs, 不过Emacs 也有这种IDE式的debug吧,没怎么用过。

PS:我写R不资深,初级用户,没写过library

像Jupiter notebook啦,Rmarkdown啦,以及orgmode这种,一般写tutorials或者纯应用型代码且不复杂的(可以长但结构线性、简单),我才用,它们展示性非常好。

但复杂的,涉及到算法的(比如自己实现了个新的optimization算法啦,新的model estimation 方法啊什么的,或者递规啊),这种literature program工具给我的感觉就是乱,且特别干扰我的思路,debug不方便(一般还要导出成纯代码文件更好处理)。远不如纯代码加规范化注释。

可能应用对象不同,需求不同,我是要写新的机器学习或统计算法的。

我之前对ESS的功能确实了解不多,听您说了之后,今天早上才发现几个新的用法…… :sweat_smile:

以前一直没有弄成 script 和 console 的交互,看来需要深入发掘一下ESS的用法了 :smiley: 又能 学(zhe)习(teng) 了好开心……

我也是R初级用户,而且不写算法,只做统计分析。所以还是在RStudio的Environment里面,实时看见各个变量和观测值的数量、感觉更放心。这个功能倒是在Emacs里面一直没见到。

就像这样:

1 个赞

哈哈,貌似是没有,我之前想写个小mode实时显示的,后来懒就搁置了

是的,script和console交互ESS开箱即用,且各种不同的,send line,region,buffer,block很方便。我也是图这个方便才开始用的。实在受不了Rstudio得选中代码段才能点start按钮

有个rdired,但是没法出summary的信息,需要加工一下

2 个赞

多谢!

变量名 数据类型 行 列

够用了,要是能实时刷新就更好了…… :smile:

可以run-at-time ,但是没必要 重点是ess的rdired也是基于正在用的r进程,你不会希望一个rdired影响性能

感谢,我感觉可以在Rstudio里面做好,然后复制道emacs里面,用emacs保存会好一点。

S语言是stata吗?

不是,貌似是R的前身,不确定,统计的还有人在用。

https://en.wikipedia.org/wiki/S_(programming_language)

现在主要是指s-plus

什么先在rstudio里写好?

rstudio里面也有send line和block的快捷键的

我是觉得rtudio好像习惯一点,但是我也要用到其他语言,也要做笔记,所以我在rtudio里面运行成功了以后再在spacemacs里面用。