if (interactive()) {
server <- function(input, output) {
observeEvent(input$goButton, {
library(shiny)
library(shinyjs)
library(CTT)
library(TAM)
library(ltm)
library(difR)
output$contents <- renderTable({
# input$file1 will be NULL initially. After the user selects
# and uploads a file, it will be a data frame with 'name',
# 'size', 'type', and 'datapath' columns. The 'datapath'
# column will contain the local filenames where the data can
# be found.
inFile1 <- input$file1
if (is.null(inFile))
return(NULL)
d1<-read.csv(inFile$datapath, header = input$header)
})
output$contents <- renderTable({
# input$file1 will be NULL initially. After the user selects
# and uploads a file, it will be a data frame with 'name',
# 'size', 'type', and 'datapath' columns. The 'datapath'
# column will contain the local filenames where the data can
# be found.
inFile2 <- input$file2
if (is.null(inFile))
return(NULL)
d2<-read.csv(inFile$datapath)
})
options(max.print=1000000)
d3<-as.list(d2)
myScore=score(d1,d3,output.scored=T)
mo1<-rasch(myScore$scored)
mo2<-ltm(myScore$scored~z1,IRT.param = TRUE)
descript1<-descript(myScore$scored,n.print = 1000000)
output$des1<-renderText({descript1$sample})
}
)
}
}
aWYgKGludGVyYWN0aXZlKCkpIHsKICAKICAKICBzZXJ2ZXIgPC0gZnVuY3Rpb24oaW5wdXQsIG91dHB1dCkgewogICAgb2JzZXJ2ZUV2ZW50KGlucHV0JGdvQnV0dG9uLCB7CiAgICAgIGxpYnJhcnkoc2hpbnkpCiAgICAgIGxpYnJhcnkoc2hpbnlqcykKICAgICAgbGlicmFyeShDVFQpCiAgICAgIGxpYnJhcnkoVEFNKQogICAgICBsaWJyYXJ5KGx0bSkKICAgICAgbGlicmFyeShkaWZSKQogICAgICAKICAgICAgCiAgICAgIAogICAgICAKICAgICAgCiAgICAgIG91dHB1dCRjb250ZW50cyA8LSByZW5kZXJUYWJsZSh7CiAgICAgICAgIyBpbnB1dCRmaWxlMSB3aWxsIGJlIE5VTEwgaW5pdGlhbGx5LiBBZnRlciB0aGUgdXNlciBzZWxlY3RzCiAgICAgICAgIyBhbmQgdXBsb2FkcyBhIGZpbGUsIGl0IHdpbGwgYmUgYSBkYXRhIGZyYW1lIHdpdGggJ25hbWUnLAogICAgICAgICMgJ3NpemUnLCAndHlwZScsIGFuZCAnZGF0YXBhdGgnIGNvbHVtbnMuIFRoZSAnZGF0YXBhdGgnCiAgICAgICAgIyBjb2x1bW4gd2lsbCBjb250YWluIHRoZSBsb2NhbCBmaWxlbmFtZXMgd2hlcmUgdGhlIGRhdGEgY2FuCiAgICAgICAgIyBiZSBmb3VuZC4KICAgICAgICBpbkZpbGUxIDwtIGlucHV0JGZpbGUxCiAgICAgICAgCiAgICAgICAgaWYgKGlzLm51bGwoaW5GaWxlKSkKICAgICAgICAgIHJldHVybihOVUxMKQogICAgICAgIAogICAgICAgIGQxPC1yZWFkLmNzdihpbkZpbGUkZGF0YXBhdGgsIGhlYWRlciA9IGlucHV0JGhlYWRlcikKICAgICAgfSkKICAgICAgb3V0cHV0JGNvbnRlbnRzIDwtIHJlbmRlclRhYmxlKHsKICAgICAgICAjIGlucHV0JGZpbGUxIHdpbGwgYmUgTlVMTCBpbml0aWFsbHkuIEFmdGVyIHRoZSB1c2VyIHNlbGVjdHMKICAgICAgICAjIGFuZCB1cGxvYWRzIGEgZmlsZSwgaXQgd2lsbCBiZSBhIGRhdGEgZnJhbWUgd2l0aCAnbmFtZScsCiAgICAgICAgIyAnc2l6ZScsICd0eXBlJywgYW5kICdkYXRhcGF0aCcgY29sdW1ucy4gVGhlICdkYXRhcGF0aCcKICAgICAgICAjIGNvbHVtbiB3aWxsIGNvbnRhaW4gdGhlIGxvY2FsIGZpbGVuYW1lcyB3aGVyZSB0aGUgZGF0YSBjYW4KICAgICAgICAjIGJlIGZvdW5kLgogICAgICAgIGluRmlsZTIgPC0gaW5wdXQkZmlsZTIKICAgICAgICAKICAgICAgICBpZiAoaXMubnVsbChpbkZpbGUpKQogICAgICAgICAgcmV0dXJuKE5VTEwpCiAgICAgICAgCiAgICAgICAgZDI8LXJlYWQuY3N2KGluRmlsZSRkYXRhcGF0aCkKICAgICAgfSkKICAgICAgb3B0aW9ucyhtYXgucHJpbnQ9MTAwMDAwMCkKICAgICAgZDM8LWFzLmxpc3QoZDIpCiAgICAgIAogICAgICBteVNjb3JlPXNjb3JlKGQxLGQzLG91dHB1dC5zY29yZWQ9VCkKICAgICAgbW8xPC1yYXNjaChteVNjb3JlJHNjb3JlZCkKICAgICAgbW8yPC1sdG0obXlTY29yZSRzY29yZWR+ejEsSVJULnBhcmFtID0gVFJVRSkKICAgICAgCiAgICAgIGRlc2NyaXB0MTwtZGVzY3JpcHQobXlTY29yZSRzY29yZWQsbi5wcmludCA9IDEwMDAwMDApCiAgICAgIG91dHB1dCRkZXMxPC1yZW5kZXJUZXh0KHtkZXNjcmlwdDEkc2FtcGxlfSkKICAgICAgfQogICAgCiAgICApCiAgICAKICAgIAogICAgfSAgIAp9Cg==