我有一个像这样的乳胶表生成代码
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")
}
wat更改我需要进行for循环..当我申请单个表但不能在for循环中工作时,它会起作用...非常感谢任何帮助......
答案 0 :(得分:10)
不要使用循环,而应考虑使用现有的print.xtable
功能并粘贴。
hdashlines:考虑使用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% 8月23日星期二13:36:41 2011 \ n \ BEGIN {表} [HT] \ n上\开始{中心} \ n \ BEGIN {片状} {RRRRRRR} \ n &安培; 1&amp; 2&amp; 3&amp; 4&amp; 5&amp; 6 \\ \ n 1&amp; 158.66&amp; 115.81&amp; 106.70&amp; 128.78 &安培; 157.43&amp; 191.01 \\ \ n \ hline \ n2&amp; 159.09&amp; 172.31&amp; 153.93&amp; 127.91&amp; 106.93&amp; 147.95 \\ \ n \ hline \ n3&amp; 135.65&amp; 139.45&amp; 192.90&amp; 108.78&amp; 186.52&amp; 164.10 \\ \ n \ hline \ n4&amp; 190.10&amp; 154.39&amp; 124.91&amp; 199.24&amp; 161.99&amp; 167.61 \\ \ n \ hline \ n \ end {tabular} \ n \ end {center} \ n \ end {table} \ n \ vspace {2em}“
有关详细信息,请参阅?print.xtable
。如果hline.after
对于您的目的不够灵活,请查看add.to.row
,您可以在其中指定要添加的位置和确切元素类型。
答案 1 :(得分:0)
如果您使用的是print.xtable
,请在print.xtable
内尝试以下操作:
hline.after = rep(c(1:nrow(df)),2)# repeating horizontal lines in xtable