2011-08-23 8 views
7

を用いたラテックステーブル内の行の間に水平線を追加私は今、私はすべてのテーブルのすべての行の後に自動的に\のhdashlineを紹介したいとこのは、R xtable

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) 

状試料ラテックステーブル生成コードを有します私は、単一のテーブルに適用する際にも、\のVSPACE {2EM}私が試してみましたRコード ワットからテーブル間の中この

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

ワットの変化は、私がloop..Itのためにあるようにする必要がありません作品ですで働いていないforループ...どんな助けもありがとうございます...

+0

+1サンプルデータとコードを転記します。ようこそ。 – Andrie

答えて

9

ループを使用するのではなく、既存のprint.xtable機能をペーストと組み合わせて使用​​することを検討してください。

  1. hdashlines:print.xtableパラメータを使用することを検討してください。たとえば、テーブル行間の水平線を制御するパラメータhline.afterがあります。

  2. 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 \ {テーブル}始める[HT] \ n \ {センター}開始\ n \ {平板} {RRRRRRRを}開始\ n 6 \\ \ nは1 & 158.66 & 135.65 139.45 & 192.90 108.78 & & N3 & & 159.09 172.31 153.93 & & & 127.91 106.93 147.95 & \\ \ n \ HLINE \ N115.81 & & 106.70 128.78 157.43 & & 191.01 \\ \ n \ HLINE \ 186.52 & 164.10 \\ \ n \ hline \ n4 & 190.10 & 154.39 & 124.91 & 199.24 & 161.99 & 167.61 \\ \ N
\ HLINEする\ n \端{平板} \ n \端{センター} \ n \端{テーブル} \ n \のVSPACE {2EM}」


詳細については、?print.xtableを参照してください。 hline.afterがあなたの目的に十分柔軟でない場合は、add.to.rowを見てください。ここで、追加する位置と正確な要素タイプの両方を指定できます。

関連する問題