2017-10-26 7 views
0

Rmarkdownを使用してPDFを生成する。私は、テーブル内のグループ化された行ラベルとして使用するために、以前の関数から生成された長いテキスト文字列を持ってきています。通常のkableExtra::group_rowsメソッドは正常に動作します。私は、各グループ内の行の同じ数を持っているので、私はindexメソッドを使用するようにしたいのですが、それは動作していないよう:パースでの「エラー:kableExtraのインデックスメソッドであらかじめ生成された文字列を使用するgroup_rows

--- 
output: 
    pdf_document: 
    latex_engine: xelatex 
    fig_caption: true 
--- 
```{r} 
library(magrittr) 
library(knitr) 
library(kableExtra) 

# Build some data 
df <- data.frame(x=1:12, y=13:24, z=25:36) 

# Row grouping text gets generated from a separate function 
gtext <- c("Group 1: text that I don't want to write out", 
      "Group 2: because it gets generated from something else", 
      "Group 3: so let's make life easy") 

# This works fine: 
df %>% 
    kable(format="latex", booktabs = TRUE, row.names=FALSE) %>% 
    group_rows(gtext[1],1,4) %>% 
    group_rows(gtext[2],5,8) %>% 
    group_rows(gtext[3],9,12) 

# But this doesn't: 
df %>% 
    kable(format="latex", booktabs = TRUE, row.names=FALSE) %>% 
    group_rows(index=c(gtext[1]=4, 
        gtext[2]=4, 
        gtext[3]=4)) 
``` 

私は編み物時に次のエラーを取得します

40個以上のテーブルの中で、最大10個の行グループを持つものもありますが、どのようにしてインデックスがどのように表示されるかは簡単に分かります(テキスト= x、srcfile = src):23:30:予期しない '時間を節約し、エラーを防ぐことができます。ここに追加された機能(または私が逃したかもしれない回避策)が最も優れています!

+1

私はHTMLにレンダリングするために、このドキュメントを取得することができます ' group_rows(index = setNames(c(4、4、4)、gtext)) '。多分それは助けるかもしれませんか? – markdly

+0

@ markdlyの答えが働くはずです。結局、名前付きベクトルだけです。 ;) – Hao

+0

@markdly、うん、それもPDFのために働いた。それを答えとして入力したい場合は、私は&upvoteを受け入れます。書き込みのトンを節約! – bcarothers

答えて

1

は、私は問題はあなたがindex引数の名前のベクトルを作成しようとしている方法であると思わ

group_rows(index=setNames(c(4, 4, 4), gtext)) 

を使用してHTMLにこの文書をレンダリングすることができます。これはいませんが

c(gtext[1] = 4, gtext[2] = 4, gtext[3] = 4) 

:コンソールでこれをしようとすると、エラーになります

setNames(c(4, 4, 4), gtext) 
#>   Group 1: text that I don't want to write out 
#>              4 
#> Group 2: because it gets generated from something else 
#>              4 
#>      Group 3: so let's make life easy 
#>              4 
関連する問題