2016-05-06 2 views
2

私はパッケージcondformatを見つけました。これは簡単にdata.framesから色付けされたテーブルを作成します。Knitrでcondformatを使用してPDF上にテーブルを作成しますか?

例の1つを実行できます。私は、HTMLを生成する場合、私は値下げ文書内で使用することができます

data(iris) 
library(condformat) 
condformat(iris[c(1:5,70:75, 120:125),]) + 
    rule_fill_discrete(Species) + 
    rule_fill_discrete(Sepal.Width, Sepal.Length,expression = Sepal.Width > Sepal.Length - 2.25, colours = c("TRUE" = "#7D00FF")) + rule_fill_gradient2(Petal.Length) 

enter image description here

しかし私はそれを使ってpdfを生成することはできません。 私はknitrとrmarkdownの両方を試しました。 Knitrはエラーを生成します。

Overfull \hbox (22.4968pt too wide) in paragraph at lines 62--62 
Missing $ inserted. 

と多くの

You can't use `macro parameter character #' in math mode. 

そして、私はrmarkdownチャンク内のコードを埋め込むしようとすると、それはすべてのエラーを生成しませんが、出力はそれが持つだけで単一の列です色のない多数の数字。

私はresults = 'asis'とそれを使わずに試しました。

Rnw Knitrでpdfを作成するときに、これらのテーブルを取得するにはどうすればよいですか?

xtableまたはztableで類似の結果が得られることもありますが、前者はセルを選択的に色付けしたい場合は非常に難しく、後者は時々うまく機能しません。例えば、私はztableテーブルの中に科学的な形式で数値を出力することはできません。

答えて

2

condformatをPDFに出力するのが難しい理由は、PDF出力をサポートしていないためです。 HTML出力のみをサポートしています(マニュアルに何も表示されていない場合を除く)。

恥知らずの自己宣伝を許したら、pixiedustパッケージをお勧めします。欠点はpixiedustにはcondformatの自動色選択やグラデーションなどの機能がないことがわかりますが、これは現在私のバケットリストにあるものです。

pixiedustの上側は、HTMLとLaTeX/PDF出力の両方を同じ構文でサポートしていることです。下のRMarkdownスクリプトは、例に似た表をcondformatから生成し、同じプレゼンテーションを得るために、PDFをニットとHTMLをニットに切り替えることができます。

--- 
title: "Untitled" 
output: pdf_document 
date: "May 6, 2016" 
header-includes: 
- \usepackage{amssymb} 
- \usepackage{arydshln} 
- \usepackage{caption} 
- \usepackage{graphicx} 
- \usepackage{hhline} 
- \usepackage{longtable} 
- \usepackage{multirow} 
- \usepackage[dvipsnames,table]{xcolor} 
- \makeatletter 
- \newcommand*\vdashline{\rotatebox[origin=c]{90}{\$\[email protected]\[email protected]\[email protected]\$}} 
- \makeatother 
--- 

```{r} 
library(pixiedust) 
library(RColorBrewer) 
data(iris) 

output <- iris[c(1:5,70:75, 120:125),] 

dust(output) %>% 
    sprinkle_table(pad = 3) %>% 
    sprinkle(
    cols = "Species", 
    bg = c(rep("rgb(249,118,110)", sum(output$Species == "setosa")), 
      rep("rgb(1,186,56)", sum(output$Species == "versicolor")), 
      rep("rgb(98,156,255)", sum(output$Species == "virginica"))), 
    recycle = "rows" 
) %>% 
    sprinkle(
    cols = c("Sepal.Length", "Sepal.Width"), 
    rows = which(with(output, Sepal.Width > Sepal.Length - 2.25)), 
    bg = "#7D00FF" 
) %>% 
    sprinkle(
    cols = "Petal.Length", 
    bg = cut(output$Petal.Length, breaks = 9, 
      labels = brewer.pal(9, "BrBG")) %>% 
      as.character(), 
    recycle = "rows" 
) %>% 
    medley_bw() 
``` 
+0

これは私が探していたものではありませんが、それを知っておいてください。 – skan

+0

それから私はあなたが探しているものがわからないことを恐れています。 – Benjamin

+0

私が探している主なものは、テーブルを簡単に色付けできることです。そしてcondformatを使ってPDFを生成するのに使用できるものを出力する方法 – skan

関連する問題