在r中的pdf中添加数据框的名称作为标题

时间:2018-04-10 05:23:14

标签: r pdf dataframe

我有一个数据框列表,如下所示:

$Profession1

Searchterm         Product            Quantity
internist          Der Internist      3
pneumo news        Pneumo News        1
der urologe        Der Urologe        5    


$Profession2

Searchterm         Product            Quantity
der nervenarzt     Der Internist      7
der kardiologe     Der Kardiologe     2
.piefel            Strahlentherapie   6
therapiedes zenker Pathophysiologie   1

.  
.  
.  
.  
.  
.  

$Profession(n)

Searchterm         Product            Quantity
tuberkolose        Tuberkolose        2
und notfallmedizin Notfall            3
rechtsmedizin      Rechtsmedizin      9

我想生成一个pdf文件,其中每个数据框都打印在一个新页面上,并且数据框的名称也应作为标题包含在其中(例如,参考我的示例的标题是Profession1,Profession2等等。)。我可以使用以下代码实现第一部分,但不知道如何包含标题。

require(gridExtra)
pdf(file = "myfile(f8).pdf", height = 12, width = 26)
total_rows_per_page = 38 
start_row = 1 

for (j in f8) {
  if(total_rows_per_page > nrow(j)){
      end_row = nrow(j)
  }else {
      end_row = total_rows_per_page 
  }

  for(i in 1:ceiling(nrow(j)/total_rows_per_page)){

    grid.newpage()   

    grid.table(j[start_row:end_row, ], rows = NULL)

    start_row = end_row + 1

    if((total_rows_per_page + end_row) < nrow(j)){

      end_row = total_rows_per_page + end_row

    }else {

      end_row = nrow(j)
    }    
  }
}

dev.off()

其中f8是我的清单。

有人可以帮助我使用非Rmarkdown解决方案吗? 感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用names()函数:

就像这个例子:

> df <- iris
> head(df)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
> df_splited <- split(df, df$Species)
> names(df_splited)
[1] "setosa"     "versicolor" "virginica" 
> 

当您遍历f8列表时,您可以使用名称获取名称(f8)[j]