LMSouq
moodle-core Open

Generating cloze question: one numeric and one single choice where choices are plots

EU
Eugenio Guerrero Ruiz
1 month ago
3 views
Problem Description
I am writing an exercise in RMarkdown (usign knitr in RStudio) which includes one numeric question and one single-choice question. How can I produce the correct code that allows the activity to be displayed in Moodle? The numeric question requires entering the correlation coefficient (whose correct answer is "corr1" in the code below), and the single-choice question requires selecting the graph that represents the data (with "grafico1" being the correct answer). library(ggplot2) Concentration = c(7.1,82.9) r.sq = 0 while (r.sq <0.85) { x = runif(33, min(Concentration),max(Concentration)) b = runif(1,-3,3)+rnorm(33,0,0.25) a = ifelse(max(b)<0, -min(b)*max(x),0) data = data.frame(Concentration = round(x,2), Reaction_time = round(a+b*x,2)) z = lm(data$Reaction_time~data$Concentration) summa = summary(z) r.sq = summa$r.squared } corr = round(cor(data$Concentration,data$Reaction_time),2) corr1 = corr r.sq = 0 while (r.sq <0.85 | abs(corr1)<abs(corr)) { x = runif(33, min(Concentration),max(Concentration)) b = runif(1,-3,3)+rnorm(33,0,0.25) a = ifelse(max(b)<0, -min(b)*max(x),0) data1 = data.frame(Concentration = round(x,2), Reaction_time = round(a+b*x,2)) z = lm(data1$Reaction_time~data1$Concentration) corr1 = round(cor(data1$Concentration,data1$Reaction_time),2) summa = summary(z) r.sq = summa$r.squared } corr2 = corr r.sq = 0 while (r.sq <0.85 | abs(corr2)<abs(corr)) { x = runif(33, min(Concentration),max(Concentration)) b = runif(1,-3,3)+rnorm(33,0,0.25) a = ifelse(max(b)<0, -min(b)*max(x),0) data2 = data.frame(Concentration = round(x,2), Reaction_time = round(a+b*x,2)) z = lm(data2$Reaction_time~data2$Concentration) corr2 = round(cor(data2$Concentration,data2$Reaction_time),2) summa = summary(z) r.sq = summa$r.squared } corr3 = corr r.sq = 0 while (r.sq <0.85 | abs(corr3)<abs(corr)) { x = runif(33, min(Concentration),max(Concentration)) b = runif(1,-3,3)+rnorm(33,0,0.25) a = ifelse(max(b)<0, -min(b)*max(x),0) data3 = data.frame(Concentration = round(x,2), Reaction_time = round(a+b*x,2)) z = lm(data3$Reaction_time~data3$Concentration) corr3 = round(cor(data3$Concentration,data3$Reaction_time),2) summa = summary(z) r.sq = summa$r.squared } write.csv(data,'concentration_vs_rxtime_q2.csv', row.names = FALSE) p1 = ggplot(data, aes(x=Concentration, y=Reaction_time)) + geom_point() p2 = ggplot(data1, aes(x=Concentration, y=Reaction_time)) + geom_point() p3 = ggplot(data2, aes(x=Concentration, y=Reaction_time)) + geom_point() p4 = ggplot(data3, aes(x=Concentration, y=Reaction_time)) + geom_point() png('grafico1.png', width=380, height=248, units='px', pointsize=12...

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base