Import data of tests and questionnaires from FormScanner. FormScanner is an open source software that converts scanned images to data using optical mark recognition (OMR) and it can be downloaded from <http://sourceforge.net/projects/formscanner/>. The spreadsheet file created by FormScanner is imported in a convenient format to perform the analyses provided by the package. These analyses include the conversion of multiple responses to binary (correct/incorrect) data, the computation of the number of corrected responses for each subject or item, scoring using weights, the computation and the graphical representation of the frequencies of the responses to each item and the report of the responses of a few persons.
|License:||GPL (>= 2)|
Data of questionnaires and tests are often collected on paper forms.
FormScanner is an open source software that converts scanned images
to data using optical mark recognition (OMR).
read.formscanner of the fsia package
can be used to import data from FormScanner in R.
The correct response (key) can be specified using function
It is also possible to specify weights for each response using
If items have a key, data can be converted
to binary variables using function
In this case, the number of corrected responses for each person
and for each item can also be computed by using functions
These functions can also be used to compute a score using the
weights previously specified.
freq calculates the absolute or percentage
frequencies of the responses to each item. The frequencies can
be printed on screen or plotted on a graph. In both cases, the
true responses (if any) are highlighted.
The responses given by one or a few persons can be displayed
on a graph by using function
The key is shown on the right and wrong responses can be immediately
identified by the red colour.
The package includes two data sets for illustrative purposes.
contain the result of importing csv files with function
key contains the correct responses of the
items of the test data sets. Data set
the weights of each correct response, while data set
contains the weights of each response.
Maintainer: Michela Battauz <email@example.com>
Borsetta, A. (2016). FormScanner [Computer Software], URL http://sourceforge.net/projects/formscanner/.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
# IMPORT DATA FROM FORMSCANNER # find the directory with package fsia dir_pkg <- find.package("fsia") # the example files are in the directory examples # create the path questionnaire_path <- file.path(dir_pkg, "examples", "scan_results_questionnaire.csv") test_path <- file.path(dir_pkg, "examples", "scan_results_test.csv") # import file "scan_results_questionnaire.csv" questionnaire_imp<-read.formscanner(questionnaire_path, dummy = "Q5.sources") questionnaire_imp # questionnaire_imp is equal to the data questionnaire # import file "scan_results_test.csv" test_imp <- read.formscanner(test_path, conc = paste("id", 1:6, sep = ""), id = "id1") test_imp # test_imp is equal to the data test # ADD THE KEY # create the path for file "key.csv" key_path <- file.path(dir_pkg, "examples", "key.csv") # add the key testk <- addkey(test_imp, keyfile = key_path) testk$key # ADD WEIGHTS # create the path for file "weights.csv" weights_path <- file.path(dir_pkg, "examples", "weights.csv") # specify the weights for each correct response testw <- addweights(testk, weightsfile = weights_path) testw$weights # create the path for file "weights_multiple.csv" weights_mult_path <- file.path(dir_pkg, "examples", "weights_multiple.csv") # specify the weights for each response testwm <- addweights(test_imp, weightsfile = weights_mult_path) testwm$weights # CONVERT DATA TO BINARY VARIABLES resp01 <- resp2binary(obj = testk, col = 2:41) resp01[, 2:5] # ASSIGN WEIGHTS TO RESPONSES resps <- resp2scores(obj = testw, col =2:41) resps[, 2:5] # ASSIGN WEIGHTS TO RESPONSES (MULTIPLE WEIGHTS) resps <- resp2scores(obj = testwm, col =2:41) resps[, 2:5] # PERSON STATISTICS (selected only 4 items) pst <- person.stat(obj = testk, col = 2:5) pst pst <- person.stat(obj = testw, col = 2:5, weights = TRUE) pst pst <- person.stat(obj = testwm, col = 2:5, weights = TRUE) pst # ITEM STATISTICS ist <- item.stat(obj = testk, col = 2:41) head(ist) ist <- item.stat(obj = testw, col = 2:41, weights = TRUE) head(ist) ist <- item.stat(obj = testwm, col = 2:41, weights = TRUE) head(ist) # FREQUENCIES OF THE RESPONSES fr <- freq(obj = testk, col = c("Question03", "Question04")) fr par(mfrow = c(1, 2)) plot(fr, ask = FALSE) # RESPONSES OF TWO PERSONS par(mfrow = c(1, 2)) report(obj = testk, col = 2:11, whichid = c("102344", "245784")) report(obj = testw, col = 2:11, whichid = c("102344", "245784"), weights = TRUE) par(mfrow = c(1, 1)) report(obj = testwm, col = 2:11, whichid = c("102344", "245784"), weights = TRUE)