使用 R xtable 在 Latex 表中的行之间添加水平线
我有一个像这样的示例乳胶表生成代码
df<-data.frame(name=rep(letters[1:7],each=24),salary=runif(24*7,100,200))
lst<-tapply(df$salary,df$name,matrix,nrow=4,byrow=T)
xlst<-lapply(lst,xtable)
现在我想在每个表中的每一行之后自动引入 \hdashline ,并在 R 代码的表之间引入 \vspace{2em} 我尝试过的是,
for(i in seq_along(lst)){
addtorow[i] <- list(pos = list(seq_len(nrow(lst[[i]])-1)),
command = "\\hdashline \n")
}
我需要在 for 循环中进行哪些更改。当我申请单个表但不在 for 循环中工作时,它可以工作...非常感谢任何帮助...
I have a sample latex table generation code like this
df<-data.frame(name=rep(letters[1:7],each=24),salary=runif(24*7,100,200))
lst<-tapply(df$salary,df$name,matrix,nrow=4,byrow=T)
xlst<-lapply(lst,xtable)
Now I want to introduce \hdashline automatically after every row in every table and also a \vspace{2em} in between the tables from R code
Wat I have tried is this
for(i in seq_along(lst)){
addtorow[i] <- list(pos = list(seq_len(nrow(lst[[i]])-1)),
command = "\\hdashline \n")
}
wat changes do i need to make in for loop..It works when I apply for a single table but not working in a for loop...Any help is much appreciated...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要使用循环,而是考虑将现有的 print.xtable 功能与粘贴结合使用。
hdashlines:考虑使用
print.xtable
参数。例如,有一个参数hline.after
控制表格行之间的水平线。vspace:使用
paste
可能会更简单。例如:
有关详细信息,请参阅
?print.xtable
。如果hline.after
对于您的目的来说不够灵活,然后看看add.to.row
,您可以在其中指定要添加的位置和确切的元素类型。Rather than using a loop, consider using the existing
print.xtable
functionality combined with paste.hdashlines: Consider using the
print.xtable
parameters. For example, there is a parameterhline.after
that controls horizontal lines between the table lines.vspace: This is possibly simpler using
paste
.For example:
See
?print.xtable
for more details. Ifhline.after
is not flexible enough for your purposes, then have a look atadd.to.row
where you can specify both the position and exact element type to add.如果您使用
print.xtable
,请在print.xtable
中尝试以下操作:hline.after = rep(c(1:nrow(df)),2 )# 在 xtable 中重复水平线
If you are using
print.xtable
, try the following insideprint.xtable
:hline.after = rep(c(1:nrow(df)),2)# repeating horizontal lines in xtable