Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(irt)
## -----------------------------------------------------------------------------
# Create an item pool of 2PL items:
ip_dtf <- data.frame(
a = c(1.1821, 0.6645, 0.8994, 1.0731, 1.0252, 1.2325, 0.9278, 1.0967),
b = c(0.4185, -0.5992, 0.2193, 0.8823, 0.4652, 1.4006, -1.1193, -0.3747))
ip <- itempool(ip_dtf, model = "2PL")
ip
## -----------------------------------------------------------------------------
ip_dtf <- data.frame(
a = c(1.1821, 0.6645, 0.8994, 1.0731, 1.0252, 1.2325, 0.9278, 1.0967),
b = c(0.4185, -0.5992, 0.2193, 0.8823, 0.4652, 1.4006, -1.1193, -0.3747),
item_id = c("i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8"),
content = c("Geometry", "Geometry", "Algebra", "Algebra", "Algebra",
"Geometry", "Algebra", "Algebra")
)
ip <- itempool(ip_dtf, model = "2PL")
ip
## -----------------------------------------------------------------------------
ip <- itempool(ip_dtf, model = "2PL", D = 1.7)
ip
## -----------------------------------------------------------------------------
ip_dtf <- data.frame(a = c(0.9303, 1.9423, 0.8417, 1.2622),
b = c(1.3515, -0.5039, -1.7263, 1.3125),
c = c(0.2301, 0.2224, 0.0967, 0.0112))
ip <- itempool(ip_dtf, model = "3PL", D = 1.7)
ip
## -----------------------------------------------------------------------------
ip_dtf <- data.frame(a = c(1.8619, 1.2458, 1.3213, 0.6174, 1.3625),
b1 = c(-0.3666, -0.9717, -1.1588, 0.1093, 0.0858),
b2 = c(0.3178, 0.2458, -0.4978, 0.6437, 0.5161),
b3 = c(1.0384, 1.2382, 1.2787, 1.3609, 1.2145))
ip <- itempool(ip_dtf, model = "GPCM")
ip
## -----------------------------------------------------------------------------
ip_dtf <- data.frame(a = c(1.175, 0.981, 1.0625, 0.9545, 0.7763),
b1 = c(-0.9633, -0.4098, -0.298, 0.0576, -0.5342),
b2 = c(-0.6213, NA, 0.4792, 0.538, 0.0363),
b3 = c(0.5938, NA, NA, 0.9815, NA),
b4 = c(NA, NA, NA, 1.3351, NA))
ip <- itempool(ip_dtf, model = "GRM", D = 1.702)
ip
## -----------------------------------------------------------------------------
ip_dtf <- data.frame(a = c(1.1152, 0.8231, 0.9527, 0.6423),
b = c(0.234, 0.0219, 0.7424, -0.3426),
d1 = c(0.0081, 0.8569, -1.5181, -0.8458),
d2 = c(0.3392, NA, -0.1978, 0.3756),
d3 = c(NA, NA, 0.1677, NA))
ip <- itempool(ip_dtf, model = "GPCM2", D = 1.702)
ip
## -----------------------------------------------------------------------------
ip_dtf <- data.frame(
model = c("3PL", "3PL", "3PL", "GPCM", "GPCM"),
a = c(1.6242, 0.9471, 1.4643, 0.6582, 1.0234),
b = c(0.4563, -0.2994, -0.3027, NA, NA),
c = c(0.0156, 0.0339, 0.1243, NA, NA),
b1 = c(NA, NA, NA, -1.1532, -1.2171),
b2 = c(NA, NA, NA, -0.5384, -0.3992),
b3 = c(NA, NA, NA, 0.0591, 0.1431),
b4 = c(NA, NA, NA, NA, 1.52),
D = c(1.7, 1.7, 1.7, 1, 1))
ip <- itempool(ip_dtf)
ip
## -----------------------------------------------------------------------------
ip <- c(item(model = "3PL", a = 2.09, b = 1.17, c = 0.25, item_id = "i1"),
item(model = "3PL", a = 0.59, b = 0.77, c = 0.13, item_id = "i2"),
item(model = "3PL", a = 1.67, b = 1.05, c = 0.04, item_id = "i3"),
item(model = "3PL", a = 0.84, b = -1.8, c = 0.24, item_id = "i4"),
item(model = "GPCM", a = 1.96, b = c(-0.94, -0.09, 0.25), item_id = "i5"),
item(model = "GPCM", a = 0.59, b = c(0.07, 1.46), item_id = "i6"),
item(model = "GPCM", a = 0.73, b = c(-1.2, -0.78, 0.2, 1.8), item_id = "i7"))
ip
## -----------------------------------------------------------------------------
# Create a testlet object with three items.
t1 <- testlet(c(item(model = "3PL", a = 2.09, b = 1.17, c = 0.25, item_id = "i1"),
item(model = "3PL", a = 0.59, b = 0.77, c = 0.13, item_id = "i2"),
item(model = "3PL", a = 1.67, b = 1.05, c = 0.04, item_id = "i3")),
testlet_id = "Testlet-932")
# Create another testlet object with two items.
t2 <- testlet(c(item(model = "3PL", a = 0.84, b = -1.8, c = 0.24, item_id = "i4"),
item(model = "GPCM", a = 1.96, b = c(-0.94, -0.09, 0.25),
item_id = "i5")),
testlet_id = "Testlet-77")
# Standalone items to be added:
i6 <- item(model = "GPCM", a = 0.59, b = c(0.07, 1.46), item_id = "i6")
i7 <- item(model = "GPCM", a = 0.73, b = c(-1.2, -0.78, 0.2, 1.8), item_id = "i7")
# Combine all items and testlets:
ip_testlet <- c(t1, t2, i6, i7)
ip_testlet
## -----------------------------------------------------------------------------
ip1 <- itempool(data.frame(
a = c(1.1821, 0.6645, 0.8994, 1.0731, 1.0252, 1.2325, 0.9278, 1.0967),
b = c(0.4185, -0.5992, 0.2193, 0.8823, 0.4652, 1.4006, -1.1193, -0.3747),
item_id = c("i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8"),
content = c("Geometry", "Geometry", "Algebra", "Algebra", "Algebra",
"Geometry", "Algebra", "Algebra")
))
ip_mixed <- itempool(data.frame(
model = c("3PL", "3PL", "3PL", "GPCM", "GPCM"),
a = c(1.6242, 0.9471, 1.4643, 0.6582, 1.0234),
b = c(0.4563, -0.2994, -0.3027, NA, NA),
c = c(0.0156, 0.0339, 0.1243, NA, NA),
b1 = c(NA, NA, NA, -1.1532, -1.2171),
b2 = c(NA, NA, NA, -0.5384, -0.3992),
b3 = c(NA, NA, NA, 0.0591, 0.1431),
b4 = c(NA, NA, NA, NA, 1.52),
D = c(1.7, 1.7, 1.7, 1.7, 1.7)))
ip_testlet <- c(
testlet(c(item(model = "3PL", a = 2.09, b = 1.17, c = 0.25, item_id = "i1"),
item(model = "3PL", a = 0.59, b = 0.77, c = 0.13, item_id = "i2"),
item(model = "3PL", a = 1.67, b = 1.05, c = 0.04, item_id = "i3")),
testlet_id = "Testlet-932"),
item(model = "GPCM", a = 0.59, b = c(0.07, 1.46), item_id = "i6"),
testlet(c(item(model = "3PL", a = 0.84, b = -1.8, c = 0.24, item_id = "i4"),
item(model = "GPCM", a = 1.96, b = c(-0.94, -0.09, 0.25),
item_id = "i5")),
testlet_id = "Testlet-77"),
item(model = "GPCM", a = 0.73, b = c(-1.2, -0.78, 0.2, 1.8), item_id = "i7"))
## -----------------------------------------------------------------------------
ip <- c(ip1, ip_mixed)
ip
## -----------------------------------------------------------------------------
# Subset only the first element of the item pool
ip1[1]
# Create an Itempool using the first and third element:
ip1[c(1, 3)] # Order is important
ip1[c(3, 1)]
# Create an Itempool using all but the second element:
ip1[-2]
# Subsetting using item ID's:
ip1[c("i2", "i1")]
# Subsetting using logical operators:
ip1[ip1$b < 0]
# Select items with information values larger than 0.2 at theta = 1:
ip1[info(ip1, theta = 1) > 0.2]
## -----------------------------------------------------------------------------
# Extract the second element
ip1[[2]]
# Extract a testlet
ip_testlet[[3]]
## -----------------------------------------------------------------------------
ip_new <- ip1
# Replace the second item with a new item
ip_new[[2]] <- item(a = 1, b = c(-1, 0, 1), model = "GRM", item_id = "NewItm4",
D = 1.7, content = "Quadratic Functions")
ip_new
## ---- eval=FALSE--------------------------------------------------------------
# ?`$,Itempool-method`
## -----------------------------------------------------------------------------
# Extract the ID's of the items within an item pool
ip1$item_id
# Extract the contents of the items within an item pool
ip1$content
# Extract the models of the items within an item pool
ip1$model
ip_mixed$model
# Maximum possible score of items
ip1$max_score
ip_mixed$max_score
ip_testlet$max_score
# Maximum scores of each standalone item
ip1$item_max_score
ip_mixed$item_max_score
ip_testlet$item_max_score
## -----------------------------------------------------------------------------
ip1$a
ip1$b
ip1$c
ip1$D
ip_mixed$a
ip_mixed$b
ip_mixed$b1
ip_mixed$b4
ip_mixed$D
## -----------------------------------------------------------------------------
# Extract the number of items within an item pool
ip1$n
# In ip_testlet, there are two testlets and two standalone items. Within those
# two testlets, there are a total of 5 items. At total there are 7 items.
ip_testlet$n
## -----------------------------------------------------------------------------
ip_new <- ip1
ip_new$item_id <- paste0("Question-", 1:length(ip_new))
ip_new$content <- c("M", "M", "R", "M", "E", "R", "E", "M")
## -----------------------------------------------------------------------------
ip_new$a <- 1
ip_new
ip_new$b <- rnorm(length(ip_new))
ip_new
## ---- eval=FALSE, include=FALSE-----------------------------------------------
#
# ip <- generate_ip(model = c("3PL", "3PL", "3PL", "3PL", "GPCM", "GPCM", "GPCM"))
# dput(ip)
# dput(as.data.frame(generate_ip(model = c("3PL", "3PL", "3PL", "3PL", "3PL"))))
# dput(as.data.frame(generate_ip(model = "GPCM", n = 5)))
# dput(as.data.frame(generate_ip(model = "GPCM2", n = 4, n_categories = c(3, 2, 4, 3))))
# dput(as.data.frame(generate_ip(model = "GPCM", n = 5, n_categories = c(5, 2, 3, 4, 3))))
#
# ip <- generate_ip(model = c("3PL", "3PL", "3PL", "GPCM", "GPCM"))
# dput(data.frame(ip))
# # list(key = c("A", "C", "D", "B", "B", "A", "D", "C"),
# # grade = c(11, 9, 9, 10, 10, 10, 11, 9))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.