r - 如何使用 RMarkdown 使用胶水包进行折叠?
问题描述
我一直在尝试使用glue和stargazer包在乳胶中自动化一些df表的结果,但我没有任何结果(我想要的意思是“^ {*}”出现在每个值旁边如表中所示)然后使用 RMarkdown。
我想得到什么:
我目前丑陋且容易出错的修复:
library(dplyr)
library(glue)
library(stargazer)
X1 = c(4.70e1, 4.72e1, 4.76e1, 2.73e20)
X2 = c(4.67e1, 4.69e1, 4.77e1, 2.05e20)
tab.out = data.frame(X1, X2)
tab.out$max<-apply(tab.out, 1, max)
one = "1"
n.tab = tab.out %>%
mutate(test1 = if_else(tab.out$X2 < tab.out$max,
glue("\\textsuperscript{*} is $<<one>>$.", .open = "<<", .close = ">>"), #It doesn't work with ^{*}
glue("")))
注意:one
只是为了测试崩溃,因为我尝试过glue_data
,glue_collapse
但没有奏效。
另一方面,假设崩溃有效,我将如何调试乳胶代码?因为我尝试使用stargazer
,xtable
但textreg
在每个函数中它都无法识别"\, }, ^{*}"。
n.tab = n.tab[c(1,2,4)]
stargazer(n.tab, summary = F, header = F)
我得到了什么?
解决方案
我使用此处paste0
提到的功能和@stefan 的建议实现了这一点,但现在我想为 n 列自动执行相同的功能
library(dplyr)
col.nam = c("AIC(n)", "HQ(n)", "SC(n)", "FPE(n)")
tab.out = data.frame(col.nam, X1, X2)
n.tab = tab.out %>%
mutate(test1 = if_else(tab.out$X1 < tab.out$X2,
paste0(X1,"$^{*}$"),
paste0(X1)),
test2 = if_else(tab.out$X2 < tab.out$X1,
paste0(X2,"\\textsuperscript{*}"),
paste0(X2)))%>%
select(col.nam, test1, test2)
colnames(n.tab) = c("Parámetros", "Lag 1", "Lag 2")
print(xtable::xtable(n.tab,
header = F,
caption = "asdasdasdasd",
label="table:tb1",
caption.placement = "top",
align="llcc"),
hline.after = c(-1,0),
include.rownames=FALSE,
include.colnames = TRUE,
add.to.row = list(pos = list(nrow(n.tab)),
command = paste("\\hline \n",
"\\multicolumn{3}{l}{\\footnotesize{$^{*}$Indica el orden de retraso seleccionado}} \\\\",
"\\multicolumn{3}{l}{\\footnotesize{\\textit{Elaboración: Los autores}}}",
sep = "")), comment=FALSE,
sanitize.text.function = function(x){x})
推荐阅读
- java - 未找到 Gradle DSL 方法:'ooapply()'
- entity-framework - 在 LINQ to Entities 中将映射对象分配给表达式结果
- reactjs - useParams 可以在 App.js 中使用吗?
- dpdk - 从 RX 环接收并在 TX 路径上释放的 DPDK 缓冲区
- r - 根据其他数据框中的列值选择 R 数据框中的列
- c++ - 如何在另一个字符串的x位置插入一个字符串?
- c - gcc:链接器错误:使用两个文件之间共享的常量数据时未定义的引用
- html -
- lstm - 在 Tensorflow 2.0 中使用 tf.distributed.MirroredStrategy 进行分布式有状态 LSTM 训练
- java - Java:简单的数组拆分程序