個別HTML文件說我有,每組多行高大的數據幀,就像這樣:拆分一個數據幀由組和印刷組特定的行使用奉迎和融洽
df <- data.frame(group = factor(rep(c("a","b","c"), each = 5)),
v1 = sample(1:100, 15, replace = TRUE),
v2 = sample(1:100, 15, replace = TRUE),
v3 = sample(1:100, 15, replace = TRUE))
我想要做的就是拆分成df
單獨length(levels(df$group))
dataframes,例如,
df_a <- df[df$group=="a",]; df_b <- df[df$group == "b",] ; ...
,然後打印在一個單獨的HTML/PDF/DOCX文件(每個數據幀可能使用Rmarkdown
和knitr
)。
我想這樣做,因爲我有一個大的數據框,並希望爲每個組創建一個個性化的報告a
,b
,c
,等謝謝。
更新(14年11月18日)
繼此線程和another thread @daroczig的意見,我試圖讓我自己的模板,將只打印所有列和行的一個很好的格式化表格每組替換原始sapply()
函數中的"correlations"
模板調用。我想製作自己的模板,而不是僅僅打印漂亮的表格(例如,@Thomas慷慨提供的答案),因爲我希望在簡單打印工作後在模板中構建額外的自定義。無論如何,我當然宰殺它:
<!--head
meta:
title: Sample Report
author: Nicapyke
description: This is a demo
packages: ~
inputs:
- name: eachgroup
class: character
standalone: TRUE
required: TRUE
head-->
### Records received up to present for Group <%= eachgroup %>
<%=
pandoc.table(df[df$group == eachgroup, ])
%>
然後保存,作爲在我的工作目錄groupreport.rapport
,我寫了下面的R代碼裏面,@ daroczig的響應後,仿照:
allgroups <- unique(df$group)
library(rapport)
for (eachstate in allstates) {
rapport.docx("FILEPATHHERE", eachgroup = eachgroup)
}
我收到錯誤:
Error in openFileInOS(f.out) : File not found!
我不知道發生了什麼事。我從pander
文檔看到,這意味着它正在尋找一個系統文件,但這對我來說沒有多大意義。無論如何,這個錯誤不會在問題的根源,這是1)我應該在自定義模板YAML
頭的input
部分去拿,和2),其中R代碼應該在rapport
模板與走在R腳本。
我意識到我可能會犯一些錯誤,這些錯誤揭示了我對rapport
和pander
缺乏經驗。謝謝你的耐心!
N.B:
> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_1.8 dplyr_0.3.0.2 rapport_0.51 yaml_2.1.13 pander_0.5.1
plyr_1.8.1 lattice_0.20-29
loaded via a namespace (and not attached):
[1] assertthat_0.1 DBI_0.3.1 digest_0.6.4 evaluate_0.5.5 formatR_1.0 grid_3.1.2
[7] lazyeval_0.1.9 magrittr_1.0.1 parallel_3.1.2 Rcpp_0.11.3 reshape_0.8.5 stringr_0.6.2
[13] tools_3.1.2
謝謝@daroczig。這可能是我所尋找的更多。在你能創建一個簡單的自定義模板之前,你會說你花了多少時間來學習'markdown'語法和'關係'語法? – mcjudd
@Nicapyke降價很容易,最重要的事情可以在5分鐘內學會生活。對於更復雜的東西,你絕對應該閱讀[Pandoc的降價手冊](http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown),但是沒有必要手動創建它們,因爲[pander軟件包]( http://rapporter.github.io/pander/)可以自動從原始R對象爲你做到這一點。關於'關係':我是其中一位作者,所以我的看法是片面的:)但它不應該比學習'降價'花費更多。如果您遇到困難,請隨時聯繫我。 – daroczig
感謝您的回覆,@daroczig。我做了一些更多的衝浪,所以找到了你在這裏的回覆:http://stackoverflow.com/questions/25407307/how-to-produce-markdown-document-for-each-row-of-dataframe-in-我認爲這更符合我想要做的事情(當然,每個數據幀除外)。如果我有任何問題,我會執行並讓你知道。再次感謝。 – mcjudd