r - आर निटार पीडीएफ: पाश रिपोर्टों को स्वचालित रूप से सहेजने के लिए कोई संभावना है(आरएमडी से उत्पन्न) एक पाश के माध्यम से?



pdf dynamic (1)

मैं एक लूप बनाना चाहूंगा, जो मुझे पीडीएफ रिपोर्टों को स्वचालित रूप से सहेजने की अनुमति देता है, जो कि। आरएमडी फाइल से उत्पन्न हुए थे। उदाहरण के लिए, यदि एक चर "आईडी" में 10 पंक्तियाँ हैं, तो मैं आर मुझे खुद को 10 रिपोर्टों को एक विशिष्ट निर्देशिका में सहेजने के लिए चाहूंगा। ये रिपोर्ट चयनित आईडी के आधार पर अलग-अलग होंगे।

पिछला पोस्ट ( कई पीडीएफ रिपोर्ट तैयार करने के लिए बुनिट के साथ छोरों का उपयोग करना ... मुझे कूबड़ पर जाने के लिए थोड़ी मदद की ज़रूरत है ) ने आरएनडब्ल्यू फाइलों से उत्पन्न कई पीडीएफ रिपोर्टों का निर्माण किया है। मैंने इस दृष्टिकोण को लागू करने की कोशिश की:

#Data

```{r, include=FALSE}
set.seed(500)
Score <- rnorm(40, 100, 15)
Criteria1<-rnorm(40, 10, 5)
Criteria2<-rnorm(40, 20, 5)
ID <- sample(1:1000,8,replace=T)
df <- data.frame(ID,Score,Criteria1,Criteria2)

#instead of manually choosing the ID:

subgroup<- subset(df, ID==1) 

# I would like to subset the Data through a loop. My approach was like like this:

for (id in unique(df$ID)){
subgroup<- df[df$ID == id,]}

```

```{r, echo=FALSE}
#Report Analysis

summary(subgroup)
```
#Here will be some text about the summary.



# At the end the goal is to produce automatic pdf reports with the ID name as a filename:

library("rmarkdown")
render("Automated_Report.rmd",output_file = paste('report.', id, '.pdf', sep=''))

अपने उदाहरण का अनुकूलन:

आपको एक .rmd "टेम्पलेट" फ़ाइल की आवश्यकता है। यह ऐसा कुछ हो सकता है, इसे template.rmd रूप में सहेजें। template.rmd

This is a subgroup report.

```{r, echo=FALSE}
#Report Analysis
summary(subgroup)
```

उसके बाद, आपको एक आर स्क्रिप्ट की आवश्यकता है जो डेटा चाहते हैं, डेटा सबसेट के माध्यम से लूप, और प्रत्येक उपशीट के लिए लोड करें

  1. टेम्प्लेट के अंदर उपयोग किए गए subgroup ऑब्जेक्ट को परिभाषित करें
  2. वांछित उत्पादन के लिए टेम्पलेट प्रस्तुत करना

इसलिए, इस अलग स्क्रिप्ट में :

# load data 
set.seed(500)
Score <- rnorm(40, 100, 15)
Criteria1<-rnorm(40, 10, 5)
Criteria2<-rnorm(40, 20, 5)
ID <- sample(1:1000,8,replace=T)
df <- data.frame(ID,Score,Criteria1,Criteria2)

library("rmarkdown")

# in a single for loop
#  1. define subgroup
#  2. render output
for (id in unique(df$ID)){
    subgroup <- df[df$ID == id,]
    render("template.rmd",output_file = paste0('report.', id, '.html'))    
}

यह मेरी कार्यशील निर्देशिका में 8 HTML फाइलों का उत्पादन किया, प्रत्येक डेटा के एक अलग उपसंबद्ध के सारांश के साथ।

ध्यान दें कि यदि आप RStudio के अंदर "बुनना" बटन पर क्लिक करने की कोशिश करते हैं, क्योंकि यह एक अलग आर सत्र में आर कोड चलाता है। हालांकि, जब आप render (या knit2pdf ) का उपयोग स्पष्ट रूप से कंसोल से चलाते हैं तो rmd फ़ाइल में आर कोड को अभी भी वैश्विक वातावरण तक पहुंच है।

इस लक्ष्य को पूरा करने के लिए एक अलग विकल्प brew पैकेज का उपयोग करना होगा





knitr