【发布时间】:2017-02-04 03:32:36
【问题描述】:
我需要创建一个文件来为题库编写基本统计问题。
我在 r 中编写了一个脚本,其中在 for 语句的每个循环中创建一个数据集,然后将其转换为单个频率向量。然后使用以下模式选择问题:第 1 周期中的“q1”、第 2 周期中的“q2”、第 3 周期中的“q3”、第 4 周期中的“q1”、第 5 周期中的“q2”等。执行此操作通过 if 语句。
问题和答案被写入以日期命名的文件中。
问题是答案是错误的,程序有时会保留最后一个值,我不知道为什么。这是一个示例输出:
我使用的代码如下:
Aaa <- function()
{
Qt <<- readline(prompt="Iterations:")
}
Aaa()
##### Create file to sink to:#################
Date.<-Sys.Date()
Date.<-format(Date., format="%Y%m%d")
Archivo<- paste(Date.,".txt",sep="")
##### Create iterations ######################
sink(Archivo, append=FALSE)
cat("PRUEBA")
cat("\n")
sink(NULL)
for (i in 1:Qt){
j<-(i/3-trunc(i/3))*3
sink(Archivo, append=TRUE)
##### Generación de variables y cálculos #####
x<-round(rnorm(400,55,12),0)
cuts<-seq(10.5,100.5,9)
x<-x[x>10]
x<-x[x<101]
Table.<-hist(x,breaks = cuts,plot = FALSE)$counts
Class. <- sample(3:9,1)
if (j==0) {
Qstn <- paste("What is cum sum for class ",Class.,"?",sep="")
Answ<-cumsum(Table.)[Class.]
} else if (j==1) {
Qstn <- paste("What % of data corresponds to class ",Class.,"?",sep="")
Answ<-Table.[Class.]/sum(Table.)*100
} else if (j==2) {
Qstn <- paste("Cummulative percent for class ",Class.,"?",sep="")
Answ<-cumsum(Table.)[Class.]/length(x)*100
}
##### List of questions #####
cat(Table.,sep=", ")
cat("\nQuestion ",i,":\n",
Qstn,"?\n",
"=",Answ,"\n",
"\n\n\n",
sep="")
sink(NULL)
}
【问题讨论】:
标签: r if-statement for-loop