2013-09-21 7 views
6

मैं एक सामान्य रैमार्कडाउन टेम्पलेट बनाने की कोशिश कर रहा हूं जो डेटा फ्रेम पर विश्लेषण करेगा। मैं प्रत्येक बार हार्ड-कोडिंग के बजाय डेटा फ्रेम में एक रैमडाउन फ़ाइल में पास करने में सक्षम होना चाहता हूं।मैं आर मार्कडाउन आरआरडी फ़ाइल में चर कैसे पास कर सकता हूं?

नीचे एक स्निपेट है जिसके साथ मैं प्रयोग कर रहा हूं। आप देख सकते हैं कि शीर्ष पर मुझे डेटा फ्रेम (mtcars) लोड करना होगा। मैं मैन्युअल रूप से स्वतंत्र चर (ivs) और आश्रित चर (डीवी) पहचानता हूं। मैं इन्हें पैरामीटर के रूप में पास करना चाहता हूं। मैं SPSS एक्सप्लोर कार्यक्षमता का त्वरित और गंदा संस्करण करने की कोशिश कर रहा हूं। "Explore.Rmd":

```{r} 
library(ggplot2) 
data(mtcars) 
mtcars$am <- factor(mtcars$am, levels=c(0,1), labels=c("Manual", "Automatic")) 
df <- mtcars 
ivs <- c("cyl", "disp", "hp", "drat", "wt", "am", "qsec") 
dvs <- c("mpg", "qsec") 
``` 

Histograms 
------------------------------------- 

```{r} 
for (v in union(ivs, dvs)) 
{ 
    hist <- ggplot(df, aes_string(x=v)) + geom_histogram() 
    print(hist) 
} 
``` 

मैं कोड है कि HTML knitr या कुछ इसी तरह का उपयोग कर उत्पन्न करने के लिए कुछ इस तरह दिखता है करना चाहते हैं।

myDF <- read.delim("mydata.tab") 
ivs <- c("iv1", "iv2", "iv3") 
dvs <- c("dv1", "dv2", "dv3") 
magic("Explore.Rmd", myDF, ivs, dvs) # <- how do I do this part? 

तो, क्या यह एक स्थिर रमार्कडाउन फ़ाइल और पास पैरामीटर पास करना संभव है? या क्या मैं ऐसा करने का प्रयास कर रहा हूं जो मैं करने की कोशिश कर रहा हूं?

+2

'knit_expand पर एक नजर है()' – baptiste

+0

जहां क्या हम 'knit_expand' फ़ंक्शन ढूंढ सकते हैं? क्या आप इसके बारे में बात कर रहे हैं: http://cran.r-project.org/web/packages/knitr/vignettes/knit_expand.html? –

उत्तर

4

मुझे लगता है कि आप "जादू" करने के लिए knitr पैकेज से knit2html का उपयोग कर सकते हैं।

  1. आप इस तरह अपने markdown फ़ाइल को परिभाषित और सहेजने के mydoc.Rmd

    ```{r} 
    source('test.R') 
    ``` 
    ```{r} 
    library(ggplot2) 
    for (v in union(ivs, dvs)) 
    { 
        hist <- ggplot(myDF, aes_string(x=v)) + geom_histogram() 
    print(hist) 
    } 
    
  2. test.R में आप अपना डेटा तैयार:

    myDF <- read.delim("mydata.tab") 
    ivs <- c("iv1", "iv2", "iv3") 
    dvs <- c("dv1", "dv2", "dv3") 
    
  3. आप knitr का उपयोग कर संकलन

    Knit2html('mydoc.Rmd') 
    
+1

उम्म .. तो डेटा कहां पारित किया जा रहा है? जब कोई उपयोगकर्ता 'Knit2html (' mydoc.Rmd ') चलाता है, तो उस कॉल में "mydata.tab" पास नहीं होना चाहिए? – rmf

1

मुझे लगता है कि एक वैकल्पिक https://github.com/yihui/knitr/issues/567

पर दिया जाता है आप जैसे अग्रिम में इन तर्कों को बनाने के लिए, होगा

args='2013' 
knit('../my.Rmd','test.html') 

तो knit() पहचान लेंगे my.Rmd; अंदर आर्ग envir तर्क देख यदि आप विवरण

7

एक अन्य विकल्प rmarkdown::render समारोह में params का उपयोग कर अपने चर सूची है को समझना चाहते हैं, देखें: http://rmarkdown.rstudio.com/developer_parameterized_reports.html

rmarkdown::render("MyDocument.Rmd", params = list(df = myDF)) 

फिर YAML में पैरामीटर फोन:

--- 
title: My Document 
output: html_document 
params: 
    df: myDF 
--- 

कौन सा तब तक रिपोर्ट शरीर में सौंपा जा सकता है:

```{r} 
myDF <- params$df 
``` 
संबंधित मुद्दे