Estou escrevendo um exercício em RMarkdown (usign knitr no RStudio) que inclui uma questão numérica e uma questão de escolha única. Como posso produzir o código correto que permite que a atividade seja exibida no Moodle?
A questão numérica requer a inserção do coeficiente de correlação (cuja resposta correta é "corr1" no código abaixo), e a questão de escolha única requer a seleção do gráfico que representa os dados (sendo "grafico1" a resposta correta).
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)
p1
dev.off()
png('grafico2.png', width=380, height=248, units='px', pointsize=12)
p2
dev.off()
png('grafico3.png', width=380, height=248, units='px', pointsize=12)
p3
dev.off()
png('grafico4.png', width=380, height=248, units='px', pointsize=12)
p4
dev.off()
Este código não funciona no Moodle, pois as opções do gráfico não têm caixas de seleção disponíveis para selecionar a resposta correta.
Determine the correlation coefficinet:
##ANSWER1##
Choose the right plot for data:
1. ![](grafico1.png)
2. ![](grafico2.png)
3. ![](grafico3.png)
4. ![](grafico4.png)
Meta-information
================
extype: cloze
exclozetype: num|schoice
exsolution: `r corr1`|1000
exname: mod10_q1