从另一种视角看R语言的Tidyverse方言
我想说的就是新手发帖要规范,并非说这样不好。我比各位理解更深刻,我是做售后的,每当听到某某数据不正常,我该怎么办的提问我就得烦死,得追着问来问去,好多时候问了还不知道需要看的参数在哪里,人家根本不关注。
我的意思是大家都很忙,格式和要求不规范,没必要浪费时间追问,因为我的追问公司是给钱的,虽然少的可怜,但是在论坛里,大家时间都宝贵的意思,而且还不要钱。
我也觉得这事喜欢和不喜欢就是一种感觉,我就是喜欢data. table,但我也不讨厌tidyverse,我也只是不喜欢千秋万代,一统江湖的声势浩荡。
data.table 这样子有规律的代码,我不用死记硬背一堆函数名字,我只是需要知道,按原则,i,j,by
该怎么填就行。
希望这些解释不会让人误解我讨厌新手须知,我是支持的,因为我每天都要受到不规范提问的荼毒,忙的时候心里真是很烦。
- 已编辑
话说新手须知是很长,但耐心看完了不管对这次提问还是对以后其他问题,不限于本论坛,都是很好的帮助,我并不觉得着急到连十几分钟浏览一个帖子都没时间。
当然,这个是一个成长的过程,我最初也是什么都不懂瞎问,但是如果没人回的时候还是要看置顶帖的,帖子名字都提示到家了。我觉得这是一个态度问题。
tidyverse 是一套针对数据分析的生态,个人觉得相对于base R 对于没有编程经历的人容易上手很多,并且在数据分析上也足够强大。如果想做开发相关的,就要学 base 和更通用的编程知识了。
这楼歪得不知道还能不能回得来哈哈哈
重要的是生态,如果base-R 也可以有一套相对统一的规则去开发R包,tidyverse就是多余的。
比如tidymodel可以让各种各样的统计模型统一起来,不仅写起来语法相近,也可以帮助理解。
可能tidyverse里有些不同的编程理念,学习曲线稍陡,但学会了以后就比base-R杂乱的生态要好的多
tidyverse其实没你想那么好,论坛里就有例子:
个人对净土宗的看法经过了肯定-否定- i don't care三个阶段了,目前尽量不用净土宗,但管道遍地的习惯还是一时难改
tctcab 一样的历程,虽然我很菜,但不妨碍我们有一样的看法。
这些事情见仁见智,求同存异。本质上tidyverse 的想法不错,不喜欢就不用,喜欢就用,无所谓就需要用的时候用点,不需要的时候不用。
抬杠不需要,我又不是上学的时候有大把时间挥霍,可以去做个杠精。没必要,生产力第一,感觉对了就好。
很认同作者的观点,我极为讨厌R中所谓的”管道“,纯粹增加代码的复杂度,降低可读性,还非常死板,调试费劲,改代码等于重写,感觉完全是”因噎废食“,
用户需要的根本不是所谓的”管道“,而是一套真正的”分析流程管理解决方案“,改方案可以可视化,可以嵌套,可以保存为”工作流程模板“便于下次重用、修改。
从我个人来讲是先学的base_R入的门,是在学了ggplot后才知道有tidyverse,现在给我的感觉就是两种混用,有时用tidyverse很麻烦,如前几天我遇到一个行连接的小事,用tidyverse 中的bind_rows()时因输入不同文件同变量的有的是数字有的是文本,就很麻烦连接。但用rbind()就直接搞定。我感觉tidyverse思想与base_R相差有点大,自己水平也不高,就是那种好用就用那种了。
dapengde 趁着七普人口数据出来,老龄化的趋势,可以写本《中老年人学习R语言》,即当真事大事,还趣味的回复一下,60岁及以上人口为26402万人(2亿6400多万),占18.70%(其中,65岁及以上人口为19064万人,占13.50%)V,从根本来说,相当于R的人口基数太少了,而打破这一局限,“一大,一小”不只需要从娃娃抓起,也需要从“大”的抓起,反而这一人群,即慢的有个性,慢的有耐性,慢的有才华...诚如N年前的“寻乌调查”中的人物,62-23岁的年龄跨度,按年龄从长至少排序
郭清如、62岁、(秀才,赴过乡试,做过小学教师,城区人)四人,到过一二次调查会,稍微供给了一点材料。
郭友梅、59岁、在材料上与我以大量供给的,是郭友梅(杂货店主,曾任县商会长,本城人)
范大明、51岁、(贫农,县苏职员,城区人)
刘茂哉、50岁、(老童生,开过赌场,做过小生意,原是小地主,降为贫民,曾任县革命委员会委员,现任区苏委员)两人,也供给了一部分材料,间或到我们的调查会。
刘星五、46岁、(农民,做过小生意,乡苏委员,城区人)
陈倬云、39岁、(自治研究所毕业,做过缝工,做过小生意,当过小学教师)
赵镜清、30岁、(中农,做过铸铁工,做过小商,陈炯明部下当过兵做到排长,现任县苏委员,双桥区人)
李大顺、28岁、(贫农,曾任区苏委员)
刘亮凡、27岁、(县署钱粮兼征柜办事员,现任城郊乡苏维埃主席,城区人)四人,他们都是经常到调查会的。
钟步赢、23岁、(梅县师范生,区政府主席,石排下人),摘自http://dangjian.com/specials/xwdc/mzdzxw/201507/t20150709_2720620.shtml
airexceltor 写书太耗神。不知道有没有出版社愿意为此立项。
dapengde 28开原则,可以先脑洞一下,出一份大纲(思路),
至于写作?有没有出版社愿意为此立项?这个问题,光看概率,也可以提前预知的,反而压根不愁了
君不见《老年人学计算机》类似的书,多有市场,这个通过图书电商网站平台可以统计出来v
(当我年老的时候,我可以为孙子孙女们讲故事,传奇一生,快乐一生!爷爷/奶奶当年做了一件小事,同时也是一件大事,力挽狂澜....)
愁的如何通过协作,在线的方式(为主)把这样的事,从小事,细活中,把R的历史,网站的问题做一个系统的总结盘点,即有内涵,还可以挖掘出来诸多新的认知见解(当年我要有这样的思路,我怎么怎么的....)还让人即产生动力,并且从点滴之中获得灵感
诚然,tidyverse在入门学习是复杂了点,就像作者说的一样“认知过载”。而且,学习了tidyverse不等于放弃了base-R,至少本人在大多数情况是混着用的。但是,举个例子,生态学的Vegan包,对tibbles支持就不是特别好,所以我通常只使用R自带的函数。至于管道,仁者见仁,智者见智,有人觉得难用,有人觉得好用。总结下,作者其实在意且强调的是base-R和tidyverse在R语言教学中的利弊,两者没有对错,看个人的知识储备和需求。
歪个楼. 大家对 tidyverse 的讨论和我昨天看到的 Mathematica 的一篇文章有些微妙的呼应: https://blog.wolfram.com/2019/04/02/why-wolfram-tech-isnt-open-source-a-dozen-reasons/ 这篇两年前的文章来自 Mathematica 的官方 blog, 它试图解释为什么 Mathematica 不应该开源. 而底下的留言出现了各种反对的声音.
至于 tidyverse, 我不认为真的可以在实际宣传中, 去 "公平" 地推广 tidyverse 和 base R, 我不认为真的有这种公平的可能性和必要性. tidyverse 的背后是自上而下统一 "整容" R 的雄心. 如果我是 tidyverse 的倡导者, 我要写一本书介绍 tidyverse, 各位能够想象在一本小小的书里我还要完全地, 公正地兼顾 tidyverse 和 base R 吗, 要做到不偏不倚, 不过度宣传, 然后让读者做出自己的判断吗?
根本不可能. 现实世界中的观念的竞争和碰撞就不是这样的. 受众学习的过程也不是这样的. 这就像你写简历, 还要在简历中坦言自己有哪些缺点, 以达到公平公正的中立? 真正的公平难道不是竞争出来吗? 各方尽自己所能推广自己认为对的东西. 从这个角度说, 我不认为 tidyverse 有任何不对的地方.
作为用户和 R 的开发者来说, 我从入门到现在, 到处都是 tidyverse 和 Hadley 的痕迹, 这些痕迹不会百分之百影响我, 但我的感受中, 它们对 R 社区的影响是完全利大于弊的. ggplot2, devtools, R package 的书, advanced R 的书 ... 如果 tidyverse 在宣传上有什么问题, 那也只能说是这些益处的硬币的反面, 没法割舍.
- 已编辑
tctcab Hi, 朋友, 如果是建设性的讨论和分享, 哪怕是很激烈的批判, 当然无可厚非. 比如记得本站有朋友专门对比了 base R 和 tidyverse 的作图.
但是剩下很多讨论我觉得并不具有这种建设性.
比如 "净土宗" 这种称呼. 先给一个群体扣一个大帽子, 然后不说具体内容, 不说具体是谁, 不分程度, 整体扫射. 这和 "女司机" 或者其它更恶劣的群体性攻击有什么区别? 这不反而加剧了这些人看不惯的 "宗教纷争" 吗? 很多批评我不知道是针对 Hadley, 还是针对某些 tidyverse 的包的使用者, 还是针对所谓的脑残粉. 如果不能明说, 那不是应该不说吗? 不然整体看起来非常不君子不地道.
再比如这篇文章里和站里其他朋友的观点, 说 tidyverse 不应该这样宣传, 不应该这样教学. 但这和 tidyverse 本身又有什么关系? 这不就类似于 "水是好的, 但不能多喝" 吗? 我上面留言已经说了, "更好" 是市场化竞争出来的, 而不是靠开发者自身的超高道德的中立和客观而来的.
再有一些留言就是在说自己的喜好. 比如 "我就是不用管道", 也没有例子, 也没有分享. 我看不出这有什么建设性.
- 已编辑
就这篇文章来说, 如果它只是从教学角度来说, 我觉得有一定启发. 这背后的争论在别的语言里也有. 如果有框架, 尤其是当这个框架更统一更易上手的时候, 教学者应该注意什么.
但是这个问题比咋一看要复杂. 因为受众起码有三类, 一个是不想深入的, 只是快学快用; 一个是想精通 R 语言的; 一个是开发者.
对于第一类, 我不觉得 tidyverse 拿来教学有什么没问题. Hadley 那本数据科学的教材我觉得非常友好. 对于不想深入的人, 了解不了解 base R 有很大关系吗? 这个地方我又觉得很不明确, 他们批判的到底是谁? 是 Hadley 的书? 还是哪个在线的课程? 这么空对空的批评十分没有意义.
第二类第三类读者就根本不在讨论范围了, 因为他们不可能只看一本书, 甚至不可能只学一门语言.