Как избежать индекса (нумерации) в латексе? - PullRequest
0 голосов
/ 19 марта 2012

Я работаю над латексом и R и использую следующий код.

<<echo=FALSE>>=
infile<-read.table("test.txt",sep="\t")
Col3 <- unique(infile[,3]) 
LCol3 <- length(Col3)
for (i in 1:LCol3) {


print(paste("Column", Col3[i]))
print(infile[infile[,3]==Col3[i],-3])
}
@

Я получаю следующий вывод.

1] "Column C"
V1 V2 V4
1 A B D
2 X T K
[1] "Column Z"
V1 V2 V4
3 Z U M
4 E V R
5 Z U M
[1] "Column P"
V1 V2 V4
6 E V R

Я хочу избежать нумерации и имен столбцов.Я хочу, чтобы мой вывод был следующим.

"Column C"
A B D
X T K

"Column Z"
Z U M
E V R
Z U M

"Column P"
E V R

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Добро пожаловать в stackoverflow @Manish.
Что касается удаления нумерации, используйте latex и rowname=FALSE. Увидеть ниже... ДАННЫЕ

Age  <- c(rep('Young',2),rep('Middle',2),rep('Old',2));Age
Smoker  <- rep(c('Yes','No'),3);Smoker
Died <- c(5,6,92,59,42,165);sum(Died)
Lived <- c(174,213,262,261,7,28);sum(Lived)
smoke <- data.frame(Age,Smoker,Died,Lived);smoke

print (xtable (smoke), file = 'ttt.tex') $ Результаты печатаются в файле ttt.tex
Это дает

 $\begin{table}[ht]
    \begin{center}
    \begin{tabular}{rllrr}
      \hline
     & Age & Smoker & Died & Lived \\ 
      \hline
    1 & Young & Yes & 5.00 & 174.00 \\ 
      2 & Young & No & 6.00 & 213.00 \\ 
      3 & Middle & Yes & 92.00 & 262.00 \\ 
      4 & Middle & No & 59.00 & 261.00 \\ 
      5 & Old & Yes & 42.00 & 7.00 \\ 
      6 & Old & No & 165.00 & 28.00 \\ 
       \hline
    \end{tabular}
    \end{center}$

или Output using print and xtable

Использование латекса в Hmisc
имена (дым) <- NULL латекс (smoke, file = 'ttt.tex', rowname = NULL) <br/> Мы получаем

 $\begin{table}[!tbp]
\begin{center}
\begin{tabular}{llrr}
\hline\hline
\multicolumn{1}{c}{Age}&\multicolumn{1}{c}{Smoker}&\multicolumn{1}{c}{Died}&\multicolumn{1}{c}{Lived}\tabularnewline
\hline
Young&Yes&$  5$&$174$\tabularnewline
Young&No&$  6$&$213$\tabularnewline
Middle&Yes&$ 92$&$262$\tabularnewline
Middle&No&$ 59$&$261$\tabularnewline
Old&Yes&$ 42$&$  7$\tabularnewline
Old&No&$165$&$ 28$\tabularnewline
\hline
\end{tabular}
\end{center}

или, Output using latex function Hmisc

Полагаю, вы уже знаете, вам нужно добавить results=tex в поле опций чанка, чтобы использовать внутри него латекс, чтобы у вас был текстовый вывод

2 голосов
/ 19 марта 2012

В общем, print - это неправильный инструмент для того, что вы пытаетесь сделать. Вы, вероятно, должны использовать cat вместо этого. Поскольку ваш пример не воспроизводим, вот очень простой пример, иллюстрирующий несколько похожее использование:

d <- data.frame(V1 = LETTERS[1:5],V2 = letters[1:5], V3 = 1:5)

for (i in 1:5){
    cat("Row",i,"\n")
    cat(unlist(d[i,]),"\n\n")
}

Row 1 
A a 1 

Row 2 
B b 2 

Row 3 
C c 3 

Row 4 
D d 4 

Row 5 
E e 5 

Обратите внимание на необходимость удаления списка строки фрейма данных, чтобы cat могла разумно вставить отдельные элементы вместе.

...