2011-08-23 12 views
7

Mam próbkę lateksu kod generacji stół jak tenDodawanie poziomą linię między wierszami w tabeli lateksowego przy użyciu 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) 

teraz chcę wprowadzić \ hdashline automatycznie po każdym wierszu, w każdej tabeli i również \ vspace {2em} między tabelami z kodu R Wat próbowałem jest to

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

zmiany wat muszę zrobić w na loop..It działa, gdy mogę ubiegać się o jednym stole ale nie działa w dla pętli ... Każda pomoc jest doceniana ...

+0

+1 za opublikowanie przykładowych danych i kodu. Witamy w SO. – Andrie

Odpowiedz

9

Zamiast używać pętli, rozważ użycie istniejącej funkcji print.xtable w połączeniu z wklejaniem.

  1. hdashlines: Rozważ użycie parametrów print.xtable. Na przykład istnieje parametr hline.after, który kontroluje poziome linie między liniami tabeli.

  2. vspace: Jest to prawdopodobnie prostsze przy użyciu paste.

Na przykład:

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] „Tabela% lateksu generowane R 2.13.1 przez xtable 1,5-6 pakiet \ n% Wt 23 sierpnia 13:36:41 2011 \ n \ {zaczynać tabeli} [HT] \ n \ {zaczynać centrum} \ n \ {zaczynać tabelarycznej} {RRRrrrr} \ n 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 \ koniec {tabelarycznej} \ n \ koniec {centrum} \ n \ koniec {tabeli} \ n \ vspace {2em}”


Aby uzyskać więcej informacji, patrz ?print.xtable. Jeśli hline.after nie jest wystarczająco elastyczny do twoich celów, spójrz na add.to.row, gdzie możesz określić zarówno pozycję, jak i dokładny typ elementu do dodania.

Powiązane problemy