这是how to export a dataframe to latex with some minimal formatting?
的后续行动考虑这个工作示例
```{r table, results='asis'}
library(knitr)
library(kableExtra)
library(magrittr)
dataframe <- data.frame(mytext1 = c('HELLO',
'WORLD'),
mytext2 = c('HELLO',
'AGAIN'),
value1 = c(1,2),
value2 = c(1,2))
piper <- dataframe %>%
kable(format = 'latex', booktabs = TRUE) %>%
add_header_above(header = c("Text" = 2, "Values" = 2))
```
给出了
\begin{tabular}{llrr}
\toprule
\multicolumn{2}{c}{Text} & \multicolumn{2}{c}{Values} \\
\cmidrule(l{2pt}r{2pt}){1-2} \cmidrule(l{2pt}r{2pt}){3-4}
mytext1 & mytext2 & value1 & value2\\
\midrule
HELLO & HELLO & 1 & 1\\
WORLD & AGAIN & 2 & 2\\
\bottomrule
\end{tabular}
这里我想将此输出写入tex
文件,并手动删除它的第一行和最后一行。
不幸的是,天真的
piper %>% filter(row_number() >=2 & row_number() <=(length(piper) - 1))
Error in UseMethod("filter_") :
no applicable method for 'filter_' applied to an object of class "knitr_kable"
在这里不起作用。有任何想法吗? 谢谢!
答案 0 :(得分:6)
当您打印piper
时,您实际上正在调用一个进行大量更改的打印方法。 piper
不仅仅是那10行文字。
如果你想获得这些行,你可以调用capture.output(piper)
,你应该能够将其作为一个字符向量进行过滤。我不认为row_number()
函数适用于那些,但应定期编制索引。例如,
lines <- piper %>% capture.output
lines[c(-1, -length(lines))]
编辑添加:要打印没有行号的内容,请使用cat()
。例如,
lines[c(-1, -length(lines))] %>% cat(sep = "\n")