我有一个这样的示例乳胶表生成代码

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}
我尝试过的Wat是这个

for(i in seq_along(lst)){
  addtorow[i] <- list(pos = list(seq_len(nrow(lst[[i]])-1)),
                      command = "\\hdashline \n")
}


我需要在for循环中进行wat更改..当我申请单个表但不在for循环中工作时,它可以工作...非常感谢任何帮助...

最佳答案

与其使用循环,不如考虑将现有的print.xtable功能与粘贴结合使用。


虚线:考虑使用print.xtable参数。例如,有一个参数hline.after控制表格线之间的水平线。
vspace:使用paste可能更简单。


例如:

library(xtable)
df <- data.frame(name=rep(letters[1:3],each=24),salary=runif(24*3,100,200))
lst <- tapply(df$salary,df$name,matrix,nrow=4,byrow=T)
xlst <- lapply(lst,function(x)print(xtable(x), hline.after=1:nrow(x)))
xlst <- lapply(xlst, paste, "\\vspace{2em}")
xlst



[1]“ xtable 1.5-6软件包在R 2.13.1中生成的%乳胶表\ n%
星期二八月23 13:36:41
2011 \ n \ begin {table} [ht] \ n \ begin {center} \ n \ begin {tabular} {rrrrrrr} \ n
&1&2&3&4&5&6 \\ \ n 1&158.66&115.81&106.70&128.78
&157.43&191.01 \\ \ n \ hline \ n2&159.09&172.31&153.93&
127.91&106.93&147.95 \\ \ n \ hline \ n3&135.65&139.45&
192.90&108.78&186.52&164.10 \\ \ n \ hline \ n4&190.10&
154.39&124.91&199.24&161.99&167.61 \\ \ n
\ hline \ n \ end {tabular} \ n \ end {center} \ n \ end {table} \ n \ vspace {2em}”




有关更多详细信息,请参见?print.xtable。如果hline.after不够灵活,请查看add.to.row,您可以在其中指定要添加的位置和确切元素类型。

09-06 19:51