knitr mit Benutzereingaben

Ich bin mit R markdown “ und Knitr mit Rstudio.

Habe ich die folgenden R-markdown-Datei:

---
title: "Untitled"
author: ""
date: ""
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r}
#Load libraries
library(knitr)
library(ggplot2)
library(reshape2)
library(chron)
library(gridExtra)

#Get current directory
directory = getwd()
setwd(directory)

readname = function()#prompt user for the name and number of the site
{ 
  n <- readline(prompt="Site name and number: ")
  return(n)
}
prjName=readname()
print(prjName)
prjName2="TEST NAME"
prjName2

Dem code fragt den Benutzer für eine Website Namen und die Nummer. Ich kann das Stück im R markdown “ und bekommen die Benutzer eine Eingabe über die Konsole, und drucken Sie es einfach nur gut. Es ist auch als string gespeichert im globalen Umfeld. Wenn ich Stricke das Dokument allerdings bekomme ich das folgende Ergebnis:

knitr mit Benutzereingaben

Scheint es, dass beim stricken das Dokument, das ich nicht drucken kann der Benutzer die Eingabe-Zeichenfolge,…

Jede Hilfe bei diesem würde sehr geschätzt.

  • so haben Sie print(prjName) und dann nur prjName2.. was prjName (keine print)?
  • interessant, läuft es in RStudio ich nicht einmal die chance bekommen, Eingabe nichts, es einfach beendet stricken
  • Ich nehme an, du bist mit R-Studio das „stricken“ – Funktion. Macht, dass das Dokument in einer nicht interaktiven Sitzung, was bedeutet, dass die readline Funktion nicht mehr Fragen, für die Eingabe. Es wird immer nur zurück "".
  • weder prjName oder drucken(prjName) wird etwas zu produzieren. Ich bin mit dem „stricken“ – Funktion. Ich hatte geplant, über die der Benutzer das Skript ausführen, das im R markdown-Datei, wo Sie die Eingabe der Namen (und andere Dinge) in die Konsole und dann stricken Sie das Dokument nach. So führen Sie die Tasche, um alle Benutzereingaben, die ich brauche, dann führen Sie stricken und einen report erstellen.
InformationsquelleAutor Dan | 2017-08-25



One Reply
  1. 1

    Als Nathan sagte in einem Kommentar, Sie können nicht readline zu erhalten Eingang in eine knitr Dokument, weil es nicht interaktiv. Aber man kann die Benutzereingabe mit einem „parametrisierten Bericht“ (siehe http://rmarkdown.rstudio.com/developer_parameterized_reports.html). Zum Beispiel,

    ---
    title: "Untitled"
    author: ""
    date: ""
    output: html_document
    params: 
      prjName: "The project name"
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = TRUE)
    ```
    
    ```{r}
    readname = function()# Get the project name
    { 
      params$prjName
    }
    prjName=readname()
    prjName

    Wenn Sie einfach stricken dieses Dokument, es wird prjName zu „Der Projekt-name“. Wenn Sie klicken Sie auf „stricken mit Parameter“ (oder set params = "ask" in einem Aufruf rmarkdown::render), werden Sie aufgefordert, den Wert, das als Standard.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.