Я пытаюсь выяснить, как преобразовать таблицу данных банка текста (вопросы с несколькими вариантами ответов) в стандартный формат, где каждый вопрос представляет собой отдельный отдельный файл .Rnw. Это позволяет мне создать банк тестов, который я могу использовать с пакетом экзаменов для R, чтобы создавать различные экзамены в письменном или компьютерном формате.
У меня есть данные банка тестов в табличном формате (.csv), где структурированные данные выглядят следующим образом (разделенные точкой с запятой):
question.no;question.text;choice.a;choice.b;choice.c;choice.d;choice.e;answer;label.1;label.2
1;This is the question text of 1;text of choice a;text of choice b;text of choice c;text of choice d;text of choice e;A;question.type.1;question.type.2
2;This is the question text of 2;text of choice a;text of choice b;text of choice c;text of choice d;text of choice e;A;question.type.1;question.type.2
Что я хотел бы сделать, это проанализировать этот файл, чтобы создать отдельный файл .Rnw для каждой строки данных, где вывод для строки 1 будет:
\begin{question}
This is the question text of 1
\begin{answerlist}
\item text of choice a
\item text of choice b
\item text of choice c
\item text of choice d
\item text of choice e
\end{answerlist}
\end{question}
\begin{solution}
The right answer is A
\end{solution}
\exname{defaggdemand}
\extype{schoice}
% \label.1{question.type.1}
% \label.2{question.type.2}
% \exsolution{10000}
\exshuffle{TRUE}
И этот файл будет называться «question_1.Rnw», и вывод для строки 2 будет выглядеть аналогично так:
\begin{question}
This is the question text of 2
\begin{answerlist}
\item text of choice a
\item text of choice b
\item text of choice c
\item text of choice d
\item text of choice e
\end{answerlist}
\end{question}
\begin{solution}
The right answer is A
\end{solution}
\exname{defaggdemand}
\extype{schoice}
% \label.1{question.type.1}
% \label.2{question.type.2}
% \exsolution{10000}
\exshuffle{TRUE}
и этот файл называется «question_2.Rnw», основываясь на первом столбце данных .csv.
Идея состоит в том, что стратегия будет принимать в качестве входных данных большую таблицу .csv и выводить в каталог по одному файлу .Rnw на строку данных testbank, переводя данные из csv в каталог вопросов testbank, готовых для использования с пакет экзаменов.
Я использовал подходы к синтаксическому анализу текста, такие как sed или регулярные выражения, для исправления набора вопросов в наборе напечатанных текстовых банков, прежде чем делать это, но я впервые получаю данные тестового банка в таком структурированном, унифицированном формате.
Я уверен, что мог бы собрать воедино какой-то подход замещения текста, который бы использовал каждый разделитель и заменял правильный текст и набор возвращаемых строк, но это кажется подверженным ошибкам, и я подозреваю, что есть самый элегантный способ.
Буду признателен за любые указания о том, как выяснить, как это сделать.