在Github上,是否可以放置一个包含R代码的readme文件并显示输出结果?

3
最近我参加了Siraj Raval发起的Linkedin上的#100daysofmlcode挑战。我所有的编程都是用R语言进行的。但是,当我在Github上推送一个RMarkdown文件或readme文件时,它不会显示从代码生成的输出。这使得观众很难跟上解释。有没有一种方法可以显示代码和输出,以便读者更容易理解呢?我知道他们可以从Github上拉取我所做的更改并在本地机器上查看它们。但考虑到每个人的时间限制,我仍然想知道是否有一种方法可以在Github上的readme文件中同时显示R代码和输出。

谢谢


1
在你的yaml中,不要使用output: html_document,而是使用output: github_document。当你运行knit时,你会得到一个github风格的markdown文档。 - camille
甚至更好的是,尝试使用 blogdown,构建自己的博客并将其托管在 GitHub 页面或 Netlify 上。 - TC Zhang
1
这里是一个实时示例仓库:https://github.com/tcgriffith/supreadme - TC Zhang
谢谢Camille,我也尝试了你的方法,但是当我将更改推送到我的github仓库时,它们仍然没有显示输出,但是如果您使用output:rmarkdown :: github_document,那么它就可以工作。不确定为什么,但还是谢谢。而且,TC Zhang,我正在考虑建立自己的博客,所以我一定会尝试您的建议。非常感谢。谢谢。 - Nikhil
2个回答

1

GitHub只是一个服务器,无法处理您的Rmarkdown文件。有两种策略:

  1. 将文件命名为README.Rmd,并对其运行render()以生成包含输出内容的README.md文件,并将两个文件都推送到GitHub。
  2. 设置一个持续集成服务,例如Travis-CI,并指示它渲染您的README并将结果推回到GitHub。

从技术设置角度来看,第一种选项最简单 - 您只需要render()

第二个选项更加方便,但需要在您的存储库中进行一些设置,配置Travis进行构建(但不会自己提交),并在Travis上设置凭据以将结果推回GitHub。为此,您需要一个类似于以下内容的.travis.yml文件:

language: r
script:
  - bash renderreadme.sh

你的仓库中需要一个名为renderreadme.sh的bash脚本文件:

#!/bin/bash
set -o errexit -o nounset
renderreadme(){
  ## Set up Repo parameters
  git init
  git config user.name "your_github_username"
  git config user.email "your_email@example.com"
  git config --global push.default simple

  ## Get drat repo
  git remote add upstream "https://$GH_TOKEN@github.com/$TRAVIS_REPO_SLUG.git"
  git fetch upstream
  git checkout master

  Rscript -e 'rmarkdown::render("README.Rmd")'

  git add README.md
  git commit -m "knit README [skip ci]"
  git push
}
renderreadme

您需要使用Travis客户端(或等效工具)来存储所需的安全GitHub凭据,以便该脚本中的git push操作成功。 "构建R项目"中的一般指导对于这些一般配置方面很有用。


0
在 Markdown 中,你可以使用 ` ` 来表示行内代码,而使用 ``` ``` 来表示代码块(多行代码)。

嗨,开发者。我认为你误解了我的问题。在编织Markdown文件时没有问题,只是当我将readme文件推送到Github时,它只显示代码,但不显示该代码生成的输出。虽然感谢你的回复。 - Nikhil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接