2015-01-04 4 views
3

나는 테스트에 포함 된 질문을 무작위로 추출하는 수학 테스트 생성기를 만들려고합니다. 나는 knitr에 20 가지 정도의 질문을 작성한 다음 버튼을 눌러서 하위 집합으로 PDF를 작성하는 것을 상상합니다. 나는 Rstudio에서 R Markdown을 사용하고 있습니다. 나는 다소 같은 솔루션 상상 :knitr의 인라인 R 코드의 두 번째 평가

```{r} 
start<-"";end<-"" 

if(0<runif(1)){ 
start1<-"```{r, echo=F}" 
end1<-"```" 
} 
``` 

`r start1` 
Question 1 
`r end1` 

을하지만이 함께 PDF 결과 :

```{r, echo=F} 
Question 1 
``` 

가 어떻게 두 번째 인라인 코드를 평가하기 위해 knitr 알 수 있습니까? 아니면 물건을 만드는 더 매끄러운 방법이 있습니까?

+1

, 나는 다음과 같은 전략을 사용하십시오 외부 R 파일로; ii) 코드 외부 화 기능을 사용하여 후속 청크의 코드 외부화 기능을 평가합니다. 아마도'knit_expand()'를 사용할 수 있지만 중간 파일을 갖는 것이 더 좋습니다. – baptiste

답변

1

당신은 그것을 위해 cat를 사용할 수 있습니다

--- 
title: "Math test" 
--- 

```{r Setup-Chunk, echo=FALSE} 
q1 <- "Note down the Pythagorean theorem?" 
q2 <- "Sum of angles of a triangle?" 
q3 <- "What is the root of $x^2$?" 
questions <- c(q1,q2,q3) 
selection <- sample(length(questions), 2) # by altering 2 you pick the number of questions 
``` 

```{r, results='asis', echo=FALSE} 
out <- c() 
for(i in selection){ 
    out <- c(out, questions[i]) 
} 
cat(paste("###", seq_along(selection), out,collapse = " \n")) 
``` 

시각 : ⅰ) 첫 눈에 보이지 않는 덩어리에, 당신의 덩어리에 대한 코드를 작성 : 개인적으로
enter image description here

+0

당신의 아이디어에 감사 드리며, 나는 knitR의 외부화 부분을 알지 못했습니다. 그러나, 나는 고양이가 "$ \ lambda $"와 같은 것을 받아들이지 않고 그렇게하지 않을 것입니다. read_chunk를 사용하여 외부 R 스크립트를 읽으면 내 텍스트가 R 코드와 비슷한 모양이되어 이해할 수 있습니다. 정상적인 텍스트를 원하십니까? –

+0

"\"는 특수 문자이므로'$ \\ lambda $'를 써야합니다. 참조 용으로이 게시물보기 : http://stackoverflow.com/questions/11806501/backslash-in-r-string – Rentrop

관련 문제