利用bash脚本(Ubuntu)Rscript,pdflatx和API的最佳方法

时间:2012-11-27 00:57:10

标签: r api bash pdflatex rscript

我正在编写一些代码

  1. 通过API连接到服务器并获取大量数据
  2. 按案例ID
  3. 组织该数据
  4. 生成个案报告,
  5. 每个案例创建一个pdf(案例概述)文件,最后
  6. 将这些文件推回服务器。
  7. 我对R非常熟悉并且对pdflatex有点熟悉。我刚刚发现了bash脚本 - 因为我已经开始在Ubuntu环境中工作 - 我现在开始意识到哪个程序最适合这项工作并不简单。

    我目前的计划是使用R中的RCrul获取数据,在R中组织数据并生成一堆.tex文件。此后我计划使用pdflatex创建teh pdf文件,最后再次使用R将新创建的pdf文件推送回服务器。我已经开始编写一个小的bash脚本,

    for f in *Rnw
    do
    # do something on ${f%%.*}
    Rscript -e “source("fetch.data.and.generate.Rnw.R")”             # 1 through 3 
    Rscript -e "library(knitr); knit('${f%%.*}.Rnw')"                # 4
    pdflatex "${f%%.*}.tex"                                          # 4 continued
    rm "${f%%.*}.tex" "${f%%.*}.aux" "${f%%.*}.log" "${f%%.*}.out"   # cleanup after 4
    Rscript -e “source("push.pdf.R")”                                # 5
    done
    

    我希望有人可以告诉我什么软件最适合工作的各个部分以及什么能给我带来最好的表现。

    数据并不广泛,我将处理大约500到2000个案例和大约20到30个变量。

1 个答案:

答案 0 :(得分:1)

@flodel和@shellter取得优异成绩。我只想补充一点,如果您决定在解决方案中继续使用bash,您可能会发现一次计算文件名变量更容易,然后在其他地方使用:

for f in *Rnw; do
    stem="${f%%.*}"
    Rscript commands with $stem
    pdflatex command involving $stem
    Rscript commands for pushing $stem.pdf
    rm $stem.*
end