список данных в формате pdf - PullRequest
0 голосов
/ 14 марта 2012

У меня есть функция, которая создает список информационных фреймов разных измерений. Затем я хочу создать файл PDF, который отображает этот вывод в следующем порядке.

df1 <- data.frame(c(1,2,3,4,5),c("a","b","c","d","e"))
names(df1) <- c("no","letter")

df2 <- data.frame(c(1,2,3,4,5),c("a","b","c","d","e"),c("a","b","c","d","e"))
names(df2) <- c("no","letter1","letter2")

outputs <- list(df1,df2)

Существует ли пакет, который подойдет для этого, или можно использовать такую ​​функцию, как textplot из пакета gdata, а затем экспортировать в pdf?

Ответы [ 3 ]

3 голосов
/ 14 марта 2012

Одним из возможных способов является построение таблицы вашего набора данных (если вы хотите избежать TEX).

library(gridExtra)

pdf(file="file_name.pdf", width=20)
    grid.newpage()
    grid.draw(tableGrob(head(iris, 10), name="test"))
dev.off()

enter image description here

Как всегда в R, есть тысячи способов сделать что-то.

plot(...)
text(...,xtable(...))

Функция xtable также может быть использована для улучшения внешнего вида в jmsigner's answer.

3 голосов
/ 14 марта 2012

Вот минимальный пример использования Sweave.

Создайте файл с именем test.Rnw, содержащий:

\documentclass[a4paper,11pt]{article}

\begin{document}

<<echo=F>>=
df1 <- data.frame(c(1,2,3,4,5),c("a","b","c","d","e"))
names(df1) <- c("no","letter")

df2 <- data.frame(c(1,2,3,4,5),c("a","b","c","d","e"),c("a","b","c","d","e"))
names(df2) <- c("no","letter1","letter2")

outputs <- list(df1,df2)

outputs
@

\end{document}

Затем вызовите из командной строки:

R CMD R Sweave test.Rnw
pdflatex test.Rnw

Может быть, это поможет вам начать.

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

Пакет gridExtra предоставляет grid.table (и tableGrob для не немедленной печати), которые очень мощные.http://cran.r -project.org / web / packages / gridExtra / index.html
Вот несколько примеров grid.table:http://rwiki.sciviews.org/doku.php?id=tips:graphics-grid:table

    library(gridExtra)

    df1 <- data.frame(c(1,2,3,4,5),c("a","b","c","d","e"))
    names(df1) <- c("no","letter")

    df2 <- data.frame(c(1,2,3,4,5),c("a","b","c","d","e"),c("a","b","c","d","e"))
    names(df2) <- c("no","letter1","letter2")

    outputs <- list(df1,df2)
    pdf(file="filename.pdf")
    plyr::l_ply(outputs, grid.table)
    dev.off()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...