2015-10-21 84 views
3

我有包含.Rmd文件:R:渲染xtable

```{r, echo=FALSE, message=FALSE, results='asis'} 
library(xtable) 
print(xtable(groupGrundALL)) 
``` 

使用RStudio它預期的創建和打開一個Word文件,但只顯示下面的文本行,而不是在「針織字」按鈕(渲染)表本身:由xtable 1.7-4包%星期三十月中的R 3.2.2生成

%膠乳表2111:14:28 2015

當我在控制檯中運行...

library(xtable) 
print(xtable(groupGrundALL)) 

我得到的LaTeX代碼:

% latex table generated in R 3.2.2 by xtable 1.7-4 package 
% Wed Oct 21 11:16:48 2015 
\begin{table}[ht] 
\centering 
\begin{tabular}{rlrrr} 
\hline 
& Retouren.Grund & Wert & Menge & Anzahl \\ 
\hline 
1 & Fehlbestellung & 685395.00 & 11469.00 & 222 \\ 
2 & andere & 237581.00 & 4354.00 & 179 \\ 
3 & Abgelaufene Ware & 129780.00 & 3522.00 & 1077 \\ 
4 & beschädigte Ware & 37417.00 & 729.00 & 143 \\ 
5 & Falschlieferung & 9943.00 & 280.00 & 14 \\ 
6 & nicht abgeholt & 1471.00 & 21.00 & 11 \\ 
7 & weggezogen & 25.00 & 1.00 & 1 \\ 
\hline 
\end{tabular} 
\end{table} 

我怎樣才能得到自己提供,而該Word文檔中顯示的表?

非常感謝您的幫助!

回答

6

據我所知,xtable只支持HTML和LaTeX格式(LaTeX是默認的)。如果您將文檔呈現爲Word文件,則需要以降格格式傳遞表格。至於現在做什麼選擇,這裏有一些你可以考慮(呈現爲適合你的降價文件的代碼):

如果編織到一個Word文檔:

--- 
title: "Sample Document" 
output: word_document 
--- 

```{r} 
groupGrundALL <- 
    structure(list(Retouren.Grund = structure(c(5L, 2L, 1L, 3L, 4L, 
6L, 7L), .Label = c("Abgelaufene Ware", "andere", "beschadigte Ware", 
"Falschlieferung", "Fehlbestellung", "nicht abgeholt", "weggezogen" 
), class = "factor"), Wert = c(685395, 237581, 129780, 37417, 
9943, 1471, 25), Menge = c(11469, 4354, 3522, 729, 280, 21, 1 
), Anzahl = c(222, 179, 1077, 143, 14, 11, 1)), .Names = c("Retouren.Grund", 
"Wert", "Menge", "Anzahl"), row.names = c(NA, -7L), class = "data.frame") 
``` 

## `knitr::kable` 
```{r, echo=FALSE, message=FALSE, results='asis'} 
knitr::kable(groupGrundALL, format = "markdown") 
``` 

## `pixiedust` 
For markdown tables, `pixiedust` is an extended wrapper for `knitr::kable` that allows you to do some additional formatting without having to preprocess data. 

```{r, warning = FALSE} 
library(pixiedust) 
dust(groupGrundALL) %>% 
    sprinkle_print_method("markdown") 
``` 

如果你您可以使用Grmd包(devtools::install_github("gforge/Grmd"))並編織到docx_document,這允許您使用來自xtablekablepixiedust的HTML輸出。這意味着您也可以爲您提供xtablepixiedust的所有自定義設置。當完成了文檔,它保存爲HTML文件,所以您可以右鍵打開一個word文檔,或改擴建爲.docx

--- 
title: "Sample Document 2" 
output: Grmd::docx_document 
--- 


```{r} 
groupGrundALL <- 
    structure(list(Retouren.Grund = structure(c(5L, 2L, 1L, 3L, 4L, 
6L, 7L), .Label = c("Abgelaufene Ware", "andere", "beschadigte Ware", 
"Falschlieferung", "Fehlbestellung", "nicht abgeholt", "weggezogen" 
), class = "factor"), Wert = c(685395, 237581, 129780, 37417, 
9943, 1471, 25), Menge = c(11469, 4354, 3522, 729, 280, 21, 1 
), Anzahl = c(222, 179, 1077, 143, 14, 11, 1)), .Names = c("Retouren.Grund", 
"Wert", "Menge", "Anzahl"), row.names = c(NA, -7L), class = "data.frame") 
``` 

## `xtable` with HTML 
```{r, echo=FALSE, message=FALSE, results='asis'} 
library(xtable) 
print(xtable(groupGrundALL), type = "html") 
``` 

## `knitr::kable` 
```{r, echo=FALSE, message=FALSE, results='asis'} 
knitr::kable(groupGrundALL, format = "html") 
``` 

## `pixiedust` with HTML 
```{r, warning = FALSE} 
library(pixiedust) 
dust(groupGrundALL) %>% 
    sprinkle_print_method("html") 
``` 

我有pixiedust強烈的偏見(顯然),但knitr::kable可能是處理不需要太多定製的簡單降價表的最快方法。

+0

太棒了! knitr :: kable爲我做了這份工作,但現在我將瞭解到你的夢幻pixiedust包裝......將很快發佈一個問題:-) –