【问题标题】:How to create a demo for a presentation tutorial?如何为演示教程创建演示?
【发布时间】:2011-09-16 02:02:46
【问题描述】:

我想为演示教程准备一个演示(将按点击顺序播放)...有人可以帮我如何编写演示,假设以下是演示中的步骤...

#start 
set.seed(1345)
x1 <- sample(letters[1:10], 5)
x1 
sort(x1)
x <- sample(1:10, 5)  
 y <- sample(c(11:20), 5)
require(lattice) 
plot(x,y)
z <- rnorm(5, 1, 0.5)
dataframe <- data.frame(x, y, z)
model1 <- lm(y ~x)
aov(model1)
#end

抱歉,经过数小时和数天的搜索,我找到了解决方案。我感谢您的帮助。

【问题讨论】:

  • 听起来你想要一堆截图和一个PowerPoint演示文稿。或者如果您使用 RStudio 或类似软件,您可以将命令保存在文本文件 (.R) 中,然后使用 ctrl+return 一次运行一个,输出将显示为“一次单击”。 ..
  • 你可以查看demo的来源,它使用readline
  • 我倾向于将 Sweave (R + LaTeX) 用于 R 教程。它的好处是可以很容易地从 Sweave 文件 (.Rnw) 中提取 R 代码。因此,您不必再担心您的 R 脚本与您的演示文稿保持同步。
  • @Thierry 并使用 Beamer 将其制作成演示文稿
  • 我的问题与在 powerpoint / word 中嵌入 R 代码无关,而是我需要在 R 中按顺序执行一些命令,这样我就不需要键入它们。这类似于您使用以下演示时得到的结果: require(lattice); demo(lattice) 所以我想把我的命令以同样的方式放到一个流程中谢谢你的建议

标签: r demo


【解决方案1】:

另一种方法:

  1. 将脚本保存在文件中 (demo.R)
  2. 编辑脚本并将pause()撒在重要位置
  3. 在 R 中,定义 pause &lt;- function() invisible(readline())
  4. 使用source("demo.R", echo=TRUE) 运行脚本

然后它将打印并运行您的命令并停止并等待pause() 处的输入。只需点击&lt;Enter&gt; 继续。

编辑:我不知道隐藏pause() 语句的好方法。一种可能的方法是复制source() 的代码并修改它以跳过对pause() 的打印调用,但我认为这有点矫枉过正......

...但是您可以将暂停功能重命名为您喜欢的任何名称 - 包括 '....',但您仍然需要这样称呼它:....()

嗯。也许是这样的:

'....' <- function(...) invisible(readline())

然后在您的脚本中添加以下任一:

....('Press Enter to continue')
# Or
....(Press_Enter_to_continue)

如果将暂停函数重命名为Pausing...,还有另一种可能性:

Pausing...(Press_Enter)

【讨论】:

  • 感谢 Tommy..for 改进的解决方案...当我尝试此操作时,pause () 出现在我想休息的地方...无论如何可以压制它们...跨度>
  • 是否可以显示类似“......”而不是“暂停()”......只是看起来更好看,因为参与者不会认为我不是尝试在暂停时刻执行任何功能...谢谢
  • 好像是漩涡,也许你可以在漩涡中写一课swirlstats.com/instructors.html
【解决方案2】:

做你想做的事的一个hacky方式是:

  • 将命令保存为脚本,例如testDemo.r
  • 复制到现有包的演示文件夹,例如&lt;Library&gt;/base/demo
  • 使用demo(testDemo,package="base") 运行

但它会在页面中而不是通过命令暂停。但最终,您可能希望创建自己的包来包含自定义演示。

编辑

看来demo的代码主要是为了检查demo是否存在,核心很简单:

op <- options(device.ask.default=TRUE)
source("testDemo.r",echo=TRUE,max.deparse.length=Inf,keep.source=TRUE)
options(op)

请注意,任何暂停仅由图形的存在完成,而不是任何长度的回显文本,demo 实际上就是这种情况。

【讨论】:

  • 感谢 James ...它可以工作...就像演示一样...这是我所期望的 ..最终解决方案是通过命令执行...
  • @John 查看demo,看来行为主要是通过适当的默认设置为source 并在options 中使用参数device.ask.default。将添加为编辑
猜你喜欢
  • 2012-06-01
  • 2010-10-27
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多