Home Comments Thread
New Thread

33 Comments

earfanfan earfanfan 2021-06-26 07:17:56

哇,好多事项啊。不过我一个都帮不上忙,只是正好溜达着路过~

原来休假并不是停下来,把脑袋清空,然后静静感受时间流逝啊~

yihui yihui 2021-06-26 14:32:33

两段话同样的字符数,真整齐啊,读起来就像读诗。

休假只是把工作扔掉,大力更博,写起来名正言顺。

更博正是把脑袋清空,堵车严重,疏通完才能静静。

文字总是召唤强迫症,又没时间,休假专心发神经。

不过我一个都帮不上忙

好了,说人话。如果你真想帮忙的话,我也可以列举一些简单的任务的。

earfanfan earfanfan 2021-06-26 15:23:01

两段话同样的字符数

这竟然也能被注意到啊。我确实是打完字发现两段话一样长,就顺手加了两个波浪号。

如果真得有简单的任务的话,不妨列几个。不过不用迁就我这小白水平而硬想一些简单的任务。

yihui yihui 2021-06-26 15:56:29

好的,放心,不会迁就,我通常不是个迁就人的人。

XiangyunHuang XiangyunHuang 2021-11-11 08:18:14

TODO

  1. A possible book: Presentation Ninja (xaringan, ioslides, slidy, revealjs, PowerPoint, beamer, shower, etc).

我可能帮得上点忙,网页技术是我准备学习的一个方向。

yihui yihui 2021-11-11 14:38:18

@XiangyunHuang 这个其实不太需要多少技术学习,主要是想着写本书,介绍所有的基于 R Markdown 制作幻灯片的工具。

yihui yihui 2021-11-11 16:15:31

@earfanfan 因为你前段时间提到了递归,今天我刚好在想一个递归问题,你看要不要试试。事情是这样:在 blogdown 包中我有个 blogdown::write_toml 函数讲 R 对象转换为 TOML 格式,这里面用的是假道伐虢的黑魔法(先转 YAML 再用 Hugo 转 TOML),但我觉得这事应该是可以用原生 R 代码直接大致实现的。我有个类似的函数 xfun::tojson 在这里:https://github.com/yihui/xfun/blob/main/R/json.R 原理很像,就是往列表里层层递归。TOML 语法在此:https://toml.io

目标是将如此这般的列表

list(
  build = list(
    command = 'hugo',
    publish = 'public',
    environment = list(HUGO_VERSION = '0.89.2')
  ),
  context = list(
    production = list(
      environment = list(HUGO_ENV = "production")
    ),
    `deploy-preview` = list(
      command = "hugo -F -b $DEPLOY_PRIME_URL"
    )
  )
)

转化为

[build]
command = 'hugo'
publish = 'public'
[build.environment]
HUGO_VERSION = '0.89.2'

[context]
[context.branch-deploy]
command = 'hugo -F -b $DEPLOY_PRIME_URL'

[context.deploy-preview]
command = 'hugo -F -b $DEPLOY_PRIME_URL'

[context.production]
[context.production.environment]
HUGO_ENV = 'production'

这事应该不算难,就是进入盗梦空间有点累脑阔。

XiangyunHuang XiangyunHuang 2021-11-12 01:10:05

@XiangyunHuang 这个其实不太需要多少技术学习,主要是想着写本书,介绍所有的基于 R Markdown 制作幻灯片的工具。

😂,我先把制作 beamer 的博文改好!

earfanfan earfanfan 2021-11-12 01:42:47

7楼的思考题,本菜鸟愿意试试。虽然我猜等我鼓捣出来的时候,你早就实现了。

8楼提到的TODO 17 我也顺道吐个槽,这本书确实应该要有了,我最近在用ioslides鼓捣,参考的https://bookdown.org/yihui/rmarkdown/ioslides-presentation.html ,但是这里面写得太简略了。比如把页面布局改成两列:

<div class="columns-2">
  ![](image.png)

  - Bullet 1
  - Bullet 2
  - Bullet 3
</div>

当我画个图那个图真得串到另一边去的时候,直接把我逗笑了。
后来,我在github上面翻别人的模板,翻到可以这样:

<div style="float: left; width: 50%; ">

</div>

<div style="float: right; width:50%; text-align: left;">

</div>

分三列也是一样width加起来等于100%就可以了。

等下周R会完了,我也着手写写鼓捣ioslides的笔记。

yihui yihui 2021-11-12 05:31:57

@earfanfan 7 楼的题我早上犹豫了一会儿,还是决定放弃,因为这种题我已经做烂了,对我涨不了经验值,徒增我瞪眼看天花板(或地板)的时间。

HTML 幻灯片的绝大多数问题归根到底都是 CSS 问题。CSS 在手,天下我有。不过 CSS 也是无底洞……

earfanfan earfanfan 2021-11-12 05:46:57

放弃得好样的。哈哈,回头我鼓捣不出来,还可以拿到COS上去请教路过的英雄好汉。

对我来说,最近还有另一件相似的事,我被抓壮丁到月底去参加湖北省总工会办的羽毛球比赛,跟高手过招也是涨经验值的好机会。

HTML 幻灯片的绝大多数问题归根到底都是 CSS 问题。CSS 在手,天下我有。不过 CSS 也是无底洞……

深有同感!我想 @XiangyunHuang 在五楼提的网页技术也是指CSS吧。所以我自己写ioslides的使用笔记时,只会写针对某些应用场景怎么弄(ps.依然是新手视角),相当于记录下来怎么为将来的自己授之以鱼,而不授之以渔。

XiangyunHuang XiangyunHuang 2021-11-12 07:48:45

R Markdown 和 Shiny 这些框架就好像是各种各样的砖头,转头在那,只要愿意学就能搬得动,但是现在需要造房子,然后望砖兴叹,砖头归砖头,房子归房子,砖头和房子之间还隔了好多东西,目前正在学习中!希望书里介绍砖头如何好的同时,也把如何用砖头造房子的经验给介绍了,搬来转头的目的是造房子!R Markdown 和 R Shiny 模版就好像是是为造房子设计的图纸,一则需要在不同的需求下准备不同的图纸,二则同一需求还可以准备多套图纸方案供客户选择。一点看法,仅供参考!

👍 1
XiangyunHuang XiangyunHuang 2021-11-12 08:07:16

深有同感!我想 @XiangyunHuang 在五楼提的网页技术也是指CSS吧。所以我自己写ioslides的使用笔记时,只会写针对某些应用场景怎么弄(ps.依然是新手视角),相当于记录下来怎么为将来的自己授之以鱼,而不授之以渔。

是的,JS 和 HTML 都需要,目前是看书(市面上关于 R Markdown 和 Shiny 的已经出了好几本书了)、临时搜索 Control + C/V、再改巴改巴,到处打游击,打着打着就想整理和慢慢地系统学习,毕竟工作太多了,只能慢慢来。

earfanfan earfanfan 2022-07-03 14:55:42

等下周R会完了,我也着手写写鼓捣ioslides的笔记。

9楼的一句话,时隔一年,俺终于动笔写了点。

我先把制作 beamer 的博文改好!

8楼的这句话,哈哈。

  1. A possible book: Presentation Ninja (xaringan, ioslides, slidy, revealjs, PowerPoint, beamer, shower, etc).

去年这件事排17,今年排到15了,可喜可贺呀。我想问问,为什么 RStudio 里面 File-->New File-->R Markdown...-->Presentation 页面上会把 ioslides 排第一位?

yihui yihui 2022-07-03 15:03:07

排第一位没什么特别的原因,rmarkdown 里主打两款 HTML 幻灯片,厂长个人偏爱 ioslides 一些吧。

感觉一场既激烈又懒散的拖延竞赛还在如火如荼地进行中,尽管有一位选手已经勉强跑到了终点。第二名应该是跑了大半了,而光荣的第三名至今还没找到起跑线在哪儿。

XiangyunHuang XiangyunHuang 2022-08-05 02:08:06

@yihui 真是拖了许久,拖到 Quarto 都出正式版了,也顺带提及了 Quarto 制作 beamer 的过程,至此,R Markdown 制作 beamer 一文终于交稿。详见cosname/cosx.org#978

@earfanfan 话说是不是该把掉了的链子 --- R 语言制作表格的文章 --- 再捡起来。我看你博客里已经写了几篇相关的学习文章了,之前你跟我说水平不够来着。我在 R Markdown 制作 beamer 一文里提供了一种写作思路,就是先挨个介绍基础的功能,然后再组合起来,写一点实战案例,最后总结几个坑。画表格也可以类似搞,那么多弄表格的包,从头到尾搞一个就行了。

earfanfan earfanfan 2022-08-05 08:08:17

@XiangyunHuang
关于表格,我现在有些迷茫困惑的地方,让我觉得没法下笔开始写。我给你讲讲啊,你可以从编辑的角度帮忙看看。

1.使用R包绘制表格时用R和引入css/html/js的边界

当人们开始记录大量数据并且试图展示出来的时候,一定是先绘制出了表格,随后才发明了各种可视化图形。后来各种绘图系统发展得越来越完善,也就越来越独立,比如 ggplot2 就是纯纯的用R语言绘图;比如plotly有R版本、Python版本、js版本,不同语言版本也都是在各自范围内形成独立的绘图系统;又比如源自echarts的echarts4r,也是尽可能把各种标题、图例等元素转化成用R去实现,但又由于跟原生库之间的关系,留了一个可以使用js的小口子。即使是修改样式方面,这些库也都尽量独立,免去用户要学习css来改字体、颜色等等样式的麻烦。它们都以牺牲一定的自由来换取了独立。

可是表格的绘制系统的发展似乎整体上是滞后的,也是不那么独立的。比如“插入图片”,用DT包的话就是用回调函数引入纯纯的js或者直接在数据中引入css/html来实现;用reactable包实现的话也是相似的,只不过是借用htmlwidgets把html中的div、image块块挪到R中成为了div、image函数;用gt包实现也是用引入css/html的方式。我总觉得用R绘制表格可以比绘制图形的自由度高,同时和css/html/js的牵扯也更多,因此几种语言之间的边界也变得十分模糊。

当然,R中的各个表格包们能够持续发展下去的话,也都会变得越来越独立。当下我也可以先介绍DT或者reactable中可以修改的元素有哪些,各种元素组合起来可以做些什么,包子们没能实现或者有坑的地方都有哪些。可是咋说清楚这两包子和css们的边界呢。新手在学习这些包子的时候,学到什么阶段需要去深入了解css们以求达到更高境界呢。毕竟猴年马月有人说过“css在手,天下我有”。

2.做数据可视化时,使用表格和图形的边界

一般情况下,数据分析师们把表格只当做动态报表来使用,把图形作为将数据可视化展示的手段。可是好像随着表格绘制系统发展起来后,表格也可以用来做数据可视化展示了。尤其是更高维度条件下,表格比图形具有先天优势,若在表格中使用顺序、颜色、图形填充等等元素,那么表格其实也能方便快速地展示数据。

如果是低维度的静态可视化,那么确实应该是优先选择用图形展示。可是如果是高维度的动态可视化,那么似乎图也可以,表也可以,图与表结合也可以。二者之间的边界变得模糊,同时使用的形式也可能有更多变通之处。那又咋说清楚表格和图形的边界呢。

3.做数据分析时,工具与分析之间的边界

老早以前表格和图形原本只是用来展示数据的工具,可是越来越多的可视化需求对工具提出了新的要求,比如辅助分析,恨不得直接用一个可视化图表就能直接告诉用户数据中隐藏的信息,一个图表不行那就并列各种图表或者层层下钻,总之就是让用户少动脑子,让他们可以直接将数据付诸行动、产生价值……

末,其实我想写用表格展示数据不平等,包括使用表格以及对比用表格和用图形展示数据的各自优势,不过论坛上那个帖子揭示的内容让我顾虑那些数据是不是自带政治因素……

XiangyunHuang XiangyunHuang 2022-08-05 09:22:21

@earfanfan 都是好问题呀。统计之都软件工具栏目是在博主 @yihui 的领导下进行的,我负责日常的一些工作。我先回答一些我所知道的,也许这些问题,甚至可以约 @yihui 一些时间。

  1. 表格的源流历史问题,这个我赞同它出现得比图形早,最早还没有表格,是计数,比如上个月卖猪肉赚了 10000 元。详详细细地记录数字及过程,然后有分类、层次整理,然后才有表格这个工具。表格旁边还有很多文字说明。
  2. 制作表格和制作图形的工具,有静态的、交互的等等,我原意是你找一个工具来介绍就好了,暂不要一上来尝试综述,表格的坑也很大。至于某些自定义的功能需求涉及到 CSS/JS/HTML,这根据使用的程度,可以算是高级篇或忍者篇内容了。
  3. 没有必要严格区分表格和图形的价值,它们是相辅相成的,文字、表格和图形都有它存在的价值。文字可以准确表述数字及其含义,表格一般不行(除非带了很多脚注、单位等等说明)。但是,表格非常适合汇总数据,分门别类,辅以少量文字,就可以极大提高沟通效率。很多时候,是因为了解数据,所以一图胜千言,倘若给你一个陌生领域的一张图形,只看图形,不看文字,未必能理解图形传达的意义,图形也未必更加高效。所以,文字、表格和图形仍然都是重要的,必要的。
  4. DT 或者 reactable 包的官网,文档很多的,对各个参数的介绍很全面,文章未必需要翻译,可以挑一些你感觉很常用的基础功能,以及你感觉读者很容易上手的部分,也可以根据你自己的经验挑选一些。至于涉及的 CSS/JS/HTML,改参数、改函数、加功能,看复杂程度,可以分分类,放到高级篇或忍者篇。
  5. 确实是希望可视化能提高沟通效率,注意信息展示的密度和价值。
  6. 《地区分布图及其应用》 我花了大量时间在美国癌症研究所和美国人口调查局官网,在那网上花费的时间够我写两篇《R Markdown 制作 beamer 幻灯片》了。我不是想宣扬我的工作,只是你得花一些时间了解数据说明,这些大网站都会有数据说明的,比如收集、处理等,了解这些非常有助你了解背景、了解数据、进而解读数据,在人家的观点之上解读数据很容易走偏。如果你是想从这些大网站上搞一票大的,可以单独写文章介绍,也不必圈在表格里。我原意是根据类似中国国家统计局或地方统计局,或者类似的什么权威网站收集点数据,用表格更加美观高效地展示出来就好了,一些政府网站往往直接提供整理好的表格,但网页展示就不那么美观了,这反而能体现咱们介绍工具的价值。至于分析部分,要求就有点高了,咱们是不是可以另外开一篇再介绍,不要都弄一起了,太复杂了。
  7. 关于政治敏感性,我没有感觉,只知道尽可能弄一手数据,二手数据尽可能做些力所能及的校验,不知道 @yihui 有没有要求?
earfanfan earfanfan 2022-08-05 12:17:35

@XiangyunHuang

比如上个月卖猪肉赚了 10000 元。

举的这个例子莫名地熟悉又好笑,卖多少猪肉能一口气赚一万块啊,我们家好多年没养猪了,小时候看大人们卖棉花、卖谷物从没见过能卖这么多钱的。

没有必要严格区分表格和图形的价值,它们是相辅相成的,文字、表格和图形都有它存在的价值。

我没有想要严格区分它们的价值,而是可视化发展到今天,也没必要严格区分三种形式了,它们已经可以互相融合了。使我迷惑的是,在做高维的、动态交互的数据可视化时,如何不被各种酷炫的东西吸引而堆积那些东西,回归到展示数据价值的本质。

只是你得花一些时间了解数据说明,这些大网站都会有数据说明的,比如收集、处理等,了解这些非常有助你了解背景、了解数据、进而解读数据,在人家的观点之上解读数据很容易走偏。

俺明白。

春天的时候,湘云劝俺写文章要多在数据上花时间,文章要往大而全的方向来写。到了夏天末尾快要立秋的时候,湘云还是苦口婆心地劝俺要多在数据上花时间,但是文章也可以往小而美的方向去写。

XiangyunHuang XiangyunHuang 2022-08-05 12:22:29

文章要往大而全的方向来写。

我好像从没说过这种话,应该是别人给我贴的标签,然后你也跟着给我贴上了。

earfanfan earfanfan 2022-08-05 12:44:02

@XiangyunHuang

好像不是别人贴的,就是我给你贴的……额,那个帖子下面我都还没开始解读、也还没下结论,但是你们都说我下了结论了,咱俩算打和好吧。

earfanfan earfanfan 2022-08-05 12:57:18

@XiangyunHuang

可是我想了老半天也想不起来当初为撒要给你贴这个标签。但是想起来一些别的,我觉得这口锅也许可以扣到益辉头上,哈哈😄。

XiangyunHuang XiangyunHuang 2022-08-06 02:01:11

@earfanfan 咱们还是回到约稿和因为一些困惑没办法下笔的问题上。如果你想写综述性的文章,我没有意见。你想找个真实数据集,然后用不同的包来制作表格,总结经验,也很好。或者你想用某个包深入介绍一番,我还是没有意见。或者等你熟悉多个包,了解和总结出一般方法后,结合具体的 R 包来讲,我仍然没有意见,都欢迎👏,期待 PR 投稿过来,只要有料就行。

yihui yihui 2022-08-22 19:19:14

我觉得这口锅也许可以扣到益辉头上

这口锅应该扣在我头上,话是我说的

7. 关于政治敏感性,我没有感觉,只知道尽可能弄一手数据,二手数据尽可能做些力所能及的校验,不知道 @yihui 有没有要求?

现在你们都知道了,那数据恐怕没法用了……数据方面我是外行(看了看箱底的毕业证,惭愧地低下了头),你们自己定夺吧。

earfanfan earfanfan 2022-08-25 04:26:06

@earfanfan 两周多过去了,我来问问进展哈 😄

@XiangyunHuang 这两周多我总恍惚以为仍在昨天。关于文章的进展,由于我的写作思路总是变来变去,所以约等于没有下笔。我是这么打算的……不管三七二十一先把脑子里的东西耕几篇简短的博客出来,然后写着写着大概思路就能定下来了。(ps这段话总觉得似曾相识)(又ps最近不知道怎么了,总觉得自己写的东西很不好,于是更难下笔了)。

话说我前两天写博客时还写到想起了你的声音,感觉对不起你给我那么多好的建议。

XiangyunHuang XiangyunHuang 2022-08-25 05:12:15

不管三七二十一先把脑子里的东西耕几篇简短的博客出来,然后写着写着大概思路就能定下来了。

@earfanfan 没问题,短博客预计一月可以耕一篇,我会不定期地来催更的😄。

感觉对不起你给我那么多好的建议。

不用对不起,建议有时候很廉价,甚至起反作用,你按照自己的节奏来就行。

giscus-bot giscus-bot 2022-12-19 05:57:28
访客 *Sarah Wang* @ 2022-06-27 19:57:38 写道:

绝对是个人才!

giscus-bot giscus-bot 2022-12-19 05:57:41
访客 *Zen Yang* @ 2022-09-22 19:14:01 写道:

活出来了

giscus-bot giscus-bot 2022-12-19 06:39:00
Guest *sylvain* @ 2010-04-08 13:48:18 originally posted:

hint for 3.3:
to have X value written with 2 digits:
Sexpr{round(X,2)}

yihui yihui 2022-12-19 06:39:03

Thanks, but what I meant was to define the number of digits globally: not just for a single instance. I guess something like options(digits = *) might work, but have not tried yet.

Originally posted on 2010-04-09 01:28:23

giscus-bot giscus-bot 2022-12-19 06:39:01
Guest *yixuan* @ 2010-04-09 04:15:14 originally posted:

What's the meaning of "Qt interfaces with R"? To develop a new graphics device using QT library?

@yixuan

yihui yihui 2022-12-19 06:39:04

Exactly -- Qt by Nokia. There are a series of R packages under development now on R-Forge: https://r-forge.r-project.org/projects/qtinterfaces (they may be quite unstable currently)

Originally posted on 2010-04-09 07:28:25

Sign in to join the discussion

Sign in with GitHub