【问题标题】:adding data frame's name as header in pdf in r在 r 中的 pdf 中添加数据框的名称作为标题
【发布时间】:2018-04-10 15:42:20
【问题描述】:

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

$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 解决方案吗? 谢谢。

【问题讨论】:

  • 能分享一下你创建f8列表的方式吗?
  • 我有一个原始 csv 文件,其中包含专业、搜索词、产品页面(点击的页面是搜索结果的一部分)、点击次数。然后我在 R 本身中使用 grep 和 sub 命令对数据进行了预处理。然后使用 dplyr 包,我按专业对数据进行分组,并使用 split 命令拆分专业。那是我得到一个数据框列表(f8)
  • 这能解释清楚吗?
  • 是的,确实如此!检查我的答案

标签: r pdf dataframe


【解决方案1】:

你可以使用 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 列表时,您可以通过 names(f8)[j]

获得名称

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 2020-12-02
  • 1970-01-01
相关资源
最近更新 更多