• R语言
  • 潜水论坛很久,有种感觉大家不是很喜欢tidyverse那一套的,可以问问为什么吗?

就是有种感觉,发现大家好像并不是很喜欢tidyverse那一套,说base R是净土宗?可以问问为什么吗?非想挑起争端,就是单纯想了解...

喜欢和不喜欢都不需要理由。

对我来说是因为tidyverse的语法经常变来变去,考虑到稳定性,很难部署到生产。

    原因之一就是岁数大了,比如我,先入为主就是 Base R,算是母语,而且基本满足了所有需求, 就没有学新方言的多大必要。

    周杰伦的歌好不好?好,但我还是最爱罗大佑。玄幻修仙有趣吗?有,但是我还是最爱武侠。

      其实不管是tidy或者是base都有自己的特色。工具嘛,那个顺手用哪个,能解决自己问题的就是好工具。
      比如我,主要是用R来写文章,做一次性的数据分析,偶尔写写博客之类的,很少用在生产中主要自己也没有什么生产的能力和需求,所以tidyverse就完美契合和满足了我的需求。

      dapengde 我算是因为tidyverse的易用性,所以先入为主的是tidyverse,然后其实也不是很能分清base 和tidyverse的大区别,日常可能是混着用...

      虽然混着用,能不调包尽量不调包,方便分享和开发包,不污染环境。

      打个不恰当的比方,能一拳把人放倒的时候就不要打出一套降龙十八掌(tidyverse 的依赖包少说也有18个吧?)。当然遇到困难的大 BOSS,一拳一拳刮痧显然也不如一套掌法带走。看实际问题。

      我是学的时候没tidy,当时也是没怎么深入,学着别人的代码简单分析一下自己实验数据,其实基本概念也不怎么懂,后来遇到tidy,惊为天人,很是把那几本书看过几遍,后来发现好多时候也没必要,又看过哈神第一版第二版 advanced R后,发现彻底另起炉灶其实也没什么意思,我也用tidy那一套的一些函数,有时候确实方便。
      我可能就是楼主说的那一批攻击的人,因为我确实说过不喜欢tidy那一套完整的东西,动机是好的,但是搞成信仰,攻击 base我就很讨厌,有一些使用人性化的地方并不代表先进,因为所谓的不人性不统一,可能只是我们思考方式或者其他什么历史原因,我并不懂一些底层的东西,有时候是纯粹想减少对包的依赖,能少则少。其实我不是攻击 tidy,我只是讨厌把自己包装成正统的行为。作为一个骨子里传统的男人,我认为做人不能忘本。
      再者现代的IDE一些代码补全提示信息足够丰富,其实也足以弥补一些不足。更何况我这不是天天用的人,不管用哪个,我更喜欢看不熟的函数的帮助文档。
      我同时建议不被网上带节奏,自己都学学,跟着自己需求走。

        lovebluesky 我和你是很相似的初入R的经历,刚开始觉得tidy很好用,但是最近是觉得越来越搞的复杂繁琐,所以才来问问大家是什么样的态度 🤣

          LTkongjianyang
          一般管 tidyverse 叫净(tidy)土(verse),是种调侃的说法。

          做数据分析,净土挺好用。但有的人把它宣传为全面超越 Base R 的新框架,造神,有点夸张了。坛子里有一部分对净土的不满因此而起。特别是一些人在这种宣传下,做什么都只会用净土,有时会写出很麻烦的代码,即便用 Base R 或 data.table 本来可以很简洁。

          其实倒不用费太多功夫去比较哪个更好,都学了根据工作选合适的用就可以了。

          之前看了一些争论的文章, tidyverse 作为一款商业产品,需要借助营销手段推广,这是很好理解的。而营销必须高亮优势,甚至采用踩一个抬一个的手段,也是可以理解的,毕竟高调做事低调做人已经很难得了,而低调做事低调做人简直是对圣人的奢求。归根结底都是工具,好用、适合就行!

          我最近投给统计之都的文章专题地图及其应用就是出于此心,里面的数据操作就是用一些 Base R 的简单操作,也能做出一些自己满意的结果。

          tidyverse 的雄心的最佳载体应该是一门新的语言, 而非几个 R 包.

          打个比方, tidyverse 觉得自己在 "改良", 但是有 "改革" 的趋势. 这种冲突可能会有分裂 R 的风险, 或者陷入不上不下的境地.

          具体到 tidyverse 的包, 我认为可以从人群去分析. 有三类人群:

          1. 完全的 R 初学者
          2. 熟练的 R 使用者
          3. R 的开发者

          对于第一类人, tidyverse 有积极的 "拉顾客" 的作用. 早年我完全没学 R 的时候, 就知道 ggplot 作图很好看. 初学者并不知道, 如果学好 base R, 理论上也能设计出好看的图. 相辅相成的, 还有 Hadley 的 devtools, R Packages, Advanced R 等工作, 很有早期争取用户的作用.

          对于第二类人, 只要能用好 Google, 基本上是哪个工具好用用啥.

          对于第三类人, 有个维护成本的权衡. 如果自己花一些时间就能写需要的工具, 那何必依赖别人的包呢?

          从以上分析可以看出, tidyverse 有一定分裂 R 用户的风险. 早期被它吸引, 但随着能力的发展, 可能会越来越抛弃它. 相比之下, R Markdown 就没有这种特点, 不同的用户都需要.

          所以回到开头, tidyverse 的定位应该是开发一门新的语言, 类似 Quarto, 而不是改良 R.

          但是话这么说, 我个人是欣赏 tidyverse 的美学或设计取向的. 我自己设计的 R 包也使用了类似 ggplot 的加法的语法. 但可能 tidyverse 对我来说越来越更像是产品, 而非工具. 改良派可能需要找到一条发扬自己美学取向, 但不分裂 R 的道路. 一种思路是开发新的工具, 探索新的领域, 在那些领域里发扬自己的美学, 而不是改良已有领域, 造成冲突.

          10 天 后

          有个不恰当的比方,这有点像蒸包子。
          狠一点的,从种小麦,种韭菜开始,到秋天终于吃到称心的韭菜包,核心是熬得起,别饿死。
          有的,从买面粉、韭菜开始,和面,调馅,折腾一个上午,一锅包子出炉。
          还有的,点点鼠标,买点一全、码头快手包子,10分钟出锅。
          再有的,就下馆子了,吃各类低中高档包子。
          R跨越这么长时间,在各类语言中去尝试吸收,试图从基础到各个模块化层面去进化和完善,搭上了天时地利人和,各类端口继承和社区做的好,有点病毒传播的味道,演化到现在,蒸蒸日上。但也会有终老的那天。
          我们大部分都是语言的使用者,怎么着手做,取决于自己的水平、模块化标准和分工协作标准,结合自己想吃什么想做什么,然后去权衡,怎么做都不丢人。