ℕʘʘ*_*ḆḽḘ 4 latex r knitr dplyr
这是如何使用一些最小格式将数据框导出到latex的后续行动?
考虑这个工作示例
```{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))
```
Run Code Online (Sandbox Code Playgroud)
这使
\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}
Run Code Online (Sandbox Code Playgroud)
在这里,我想将此输出写入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"
Run Code Online (Sandbox Code Playgroud)
在这里不起作用.有任何想法吗?谢谢!
当你打印时piper,你实际上是在调用一种可以进行大量更改的打印方法. piper不只是那10行文字.
如果你想获得这些行,你可以调用capture.output(piper),你应该能够将其作为字符向量进行过滤.我不认为该row_number()功能适用于那些,但定期索引应该.例如,
lines <- piper %>% capture.output
lines[c(-1, -length(lines))]
Run Code Online (Sandbox Code Playgroud)
编辑添加:要打印没有行号的,请使用cat().例如,
lines[c(-1, -length(lines))] %>% cat(sep = "\n")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |