Rmarkdown没有将系统命令的结果输出到html文件

时间:2014-12-09 21:15:14

标签: r knitr r-markdown

我是使用Markdown的新手,并且在SO上寻找类似的问题而没有成功。我使用Rmarkdown(使用Rstudio和knitr)编写一个插图来描述数据文件中的读取,该数据文件作为包的一部分导入。我可以使用

正确访问数据文件
> system.file("extdata", "Marlin-tag38606.txt", package = "xtractomatic")

我想在插图中显示此文件的前几行,因此我的代码为

```{r, results=as.is}

datafile <- system.file("extdata", "Marlin-tag38606.txt", package = "xtractomatic")

system(paste("head -n5 ",datafile))

```

问题是此调用的结果输出到Rmarkdown控制台而不是输出到插图html文件。

RStudio的Rmarkdown窗口中的输出是(但格式更好):

 |...................                                              |  29%
label: unnamed-chunk-8
date    lon lat lowLon  higLon  lowLat  higLat
4/23/2003   203.899 19.664  203.899 203.899 19.664  19.664
4/24/2003   204.151 19.821  203.912597  204.389403  18.78051934 20.86148066
4/30/2003   203.919 20.351  203.6793669 204.1586331 18.79728188 21.90471812
5/1/2003    204.229 20.305  203.9943343 204.4636657 18.90440013 21.70559987
  |....................                                             |  31%

这是我想要输出到小插图文本的内容,但它并不存在。在生成的插图中,我只有两行R代码,但不是系统调用的输出。 任何意见,将不胜感激。谢谢。

Cara Wilson

2 个答案:

答案 0 :(得分:5)

intern = TRUE用于system(),然后cat()输出:

cat(system(paste("head -n5", datafile), intern = TRUE), sep = '\n')

答案 1 :(得分:0)

在Rmarkdown文档中使用bash块为我完成了这项工作。 例如,包testdat在其extdata目录中包含.csv文件:

  

```{的bash}
  head -n5~ / R / x86_64-pc-linux-gnu-library / 3.3 / testdat / extdata / 2012.csv
  ```

将在您的html文件中提供:

  

## 14 ,,, 2012,Censo,1775351 ,,
  ## 14 ,,, 2012,Votantes,1135568,64.0,
  ## 14 ,,, 2012,Nulos,9168,0.8,
  ## 14 ,,, 2012,Válidos,1126400,99.2,
  ## 14 ,,, 2012,Blancos,14640,1.3,

我不确定这个选项是否存在于2014年,当你提出问题时。