2016-03-21 2 views
1

ezANOVAパッケージのリストの一部から取ったテーブルをpdfに編成するrmarkdownドキュメントを作成しています。テーブルは、パンダパッケージを使用して作成されます。以下のおもちゃのデータセットを持つおもちゃのRmarkdownファイル。Rmarkdownとパンダを使用した表の列見出しの整列

--- 
title: "Table Doc" 
output: pdf_document 
--- 
```{r global_options, include=FALSE} 
#set global knit options parameters. 
knitr::opts_chunk$set(fig.width=12, fig.height=8, fig.path='Figs/', 
         echo=FALSE, warning=FALSE, message=FALSE, dev = 'pdf') 
``` 


```{r, echo=FALSE} 
# toy data 
id <- rep(c(1,2,3,4), 5) 
group1 <- factor(rep(c("A", "B"), 10)) 
group2 <- factor(rep(c("A", "B"), each = 10)) 
dv <- runif(20, min = 0, max = 10) 
df <- data.frame(id, group1, group2, dv) 
``` 

``` {r anova, echo = FALSE} 
library(ez) 
library(plyr) 
library(pander) 

# create anova object 
anOb <- ezANOVA(df, 
       dv = dv, 
       wid = id, 
       between = c(group1, group2), 
       type = 3, 
       detailed = TRUE) 

# extract the output table from the anova object, reduce it down to only desired columns 
anOb <- data.frame(anOb[[1]][, c("Effect", "F", "p", "p<.05")]) 

# format entries in columns 
anOb[,2] <- format(round (anOb[,2], digits = 1), nsmall = 1) 
anOb[,3] <- format(round (anOb[,3], digits = 4), nsmall = 1) 

pander(anOb, justify = c("left", "center", "center", "right")) 
``` 

は今、私はいくつかの問題を抱えている

A)私は中央に整列テーブル内の列見出しを持っていると思いますが、これらの見出しの下に実際の列エントリはに合わせ、最後の3つの列について権利。

b)イタリック体の列見出し「F」と「p」を、イタリック体の「p < .05」列の「p」を、通常のフォントでも残りたいと思います。そこで彼らは、私がplyrを使用して列見出しの名前を変更しようとした::ので

anOb <- rename(anOb, c("F" = "italic(F)", "p" = "italic(p)", "p<.05" = "")) 

のように名前を変更しかし、それは

答えて

1
を動作しませんでした FPP < 0.05

を読みます

マークダウンでは、スターまたはアンダースコアの間にテキストを折り返すイタリック体のマークダウン構文を使用する必要があります。

> names(anOb) <- c('Effect', '*F*', '*p*', '*p<.05*') 
> pander(anOb) 

----------------------------------------- 
    Effect  *F*  *p*  *p<.05* 
--------------- ------ -------- --------- 
    (Intercept) 52.3 0.0019  *  

    group1  1.3 0.3180   

    group2  2.0 0.2261   

group1:group2 3.7 0.1273   
----------------------------------------- 

プログラマチックな方法でこれを行う場合は、pandoc.emphasisヘルパ関数を使用して文字列に開始を追加することもできます。

しかし、あなたの他の問題は、パッケージ内のバグが原因であり、そのため私はちょうどGHの修正を提案しました。そのブランチを試してみて、GHを報告してください。今週末に、関連ユニットテストをクリーンアップし、すべてがOKであればブランチをマージするために、今週末に時間を取ろうとします。

+0

ありがとうございます@daroczig私はイタリック体のためのマークダウンの書式を考えていたはずです。私はまだ.Rと.rmdの間の切り替えに慣れています。修正に関しては、私はまだGHの相対的初心者です。クローン/ステータス/追加/コミット/プッシュ/プルをあまり超えていません。このように、私のおもちゃの問題に対するあなたのコードの適合(セルを埋めることのない数字の左側に2つの空白を追加するのはそうですか?)は、私のものを少し超えています(例えば、 @はしなければなりません)。私の無知のために申し訳ありません。もう一度やり直してみます。 – llewmills

+0

@llewmillsたとえば、 'devtools :: install_github( 'rapporter/pander @ simple-and-multiline-aligment-fix')'を使って 'pander'の開発版をインストールすれば、そのブランチを試してみることができます。以前と同じように 'pander'を使用してください(あなたのセッションを再開したり、パッケージを再ロードした後)。 – daroczig

+0

最後のコメントに貼り付けたコードをコピーして、うまく読み込めました。 Rを再起動してパッケージをアンロードしてパッケージを再ロードしましたが、3桁の値(たとえば2.3)は列の右側にフラッシュされるのではなく、まだ中央に置かれています。 – llewmills

関連する問題