R/create_test_paper.R

#' 从题库中创建试题选择考试题目
#'
#' @description 可以利用sqlitebrowser 的 examyear中添加考试年份,然后,利用 select content from testbank where examyear like 选择试题
#'
#' @author Gabe Lee
#' @param testrowid
#' @return testmd
#' @export
#' @examples
#' # med_micro_test_2015_cn_benke_A <- as.character(c(1,5,8,17,24,27))
#' # med_micro_test_2015_cn_benke_B <- as.character(c(3,5,7,18,23,28))
#' #med_micro_test_2015_cn_benke_C <- as.character(c(1,9,19,20,22,26))
#' #注意:R 中变量名称不能用-号,最好用_,或者 camalCase
#' #med-micro-test-2015-cn-benke-D <- c(19,14,13,16,1,8)
#' #create_test_paper(med_micro_test_2015_cn_benke_A)
#' #create_test_paper(med_micro_test_2015_cn_benke_B)
#' #create_test_paper(med_micro_test_2015_cn_benke_C)
#' #make all

create_test_paper <- function(testid){
	library(dplyr)
	my_db <- dplyr::src_sqlite(path="/Users/gabe/liguomin.teaching/Testbanks/testbankmd.sqlite")

	# 试题输出目录
	outdir <- "/Users/gabe/liguomin.teaching/Testbanks/Tests/"

	testbank_tb = dplyr::tbl(my_db,'testbank')

	#  取得变量名称
	outname <- deparse(substitute( testid))
	year<-  sub(".+([0-9]{4}).+","\\1",outname)
	dataDir <- paste0(outdir,year,"/")

	if (!file.exists(dataDir)) {
		dir.create(file.path(dataDir))
	}


	testbank_tb %>%
		dplyr::filter(mdid %in% testid) %>%
		dplyr::select(content) %>%
		# To pull down all the results use collect()
		collect %>%
		as.list %>%
		unlist %>%
		paste(.,collapse = "\n") %>%
		cat(., file=paste0(dataDir,outname,".md"))
}
Gabegit/gmExam documentation built on May 6, 2019, 5:32 p.m.