我想尝试如何从R markdown文件,但从作为Cron作业运行的bash脚本呈现HTML。 我不知道为什么一切工作正常,除了作为克伦工作。 我做的事:
我的脚本是Rstudio的演示脚本
--- title: "test" author: "sms" date: "24 maja 2015" output: html_document --- This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>. When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this: ```{r} summary(cars) ``` etc.
这个脚本在Rstudio中没有任何问题。
接下来我尝试从terminal运行一个Rmd脚本:
Rscript -e "require( 'rmarkdown' ); render('/home/sms/Dokumenty/R/test.Rmd', 'html_document')"
没有任何问题。 有用。
所以我创build了bash脚本
#!/bin/bash
('/ home / sms / Dokumenty / R / test.Rmd','html_document')“
并更改了chmod 755 test.sh
也像一个魅力。
但是,当把Cron文件(pipe理员和用户):
28 18 * * * sh /home/sms/Dokumenty/R/test.sh
它不起作用
任何想法我做错了什么?
我有同样的问题。 这个问题是因为我以root身份运行Rscript,但是Rscript应该以当前用户的身份运行。 为了解决这个问题,我编辑了用户souza“sudo crontab -u souza -e”的crontab,并且Rscript作为souza而不是root来运行。 现在它正在工作
简化,简化,简化。
首先,我将它作为一个RScript,也许称为renderTest.R
#!/usr/bin/Rscript library(rmarkdown) setwd("/home/sms/Dokuments/R") render("test.Rmd") # I usually use default arguments
其次,使脚本可执行( chmod 0755 renderTest.R
)。
三,测试脚本。 如果你可以像你一样运行它,那么你也应该运行一个cron作业。
第四,添加cronjob运行,因为你有相同的权利。
编辑我只是修复了我从你抄来的错字: Documents/
not Documenty/
。
我有同样的问题。
但是,如果你尝试使用knitr :: knit2html而不是使用rmarkdown :: render,它将会起作用
理解为什么