Description Usage Arguments Value Methods (by generic) See Also Examples
View source: R/psClosedSorts.R
Canonical storage for closed sorts.
Plot S3 class.
1 2 3 4 5 6 7 8 9 10 11 12 | psClosedSorts(csorts)
## S3 method for class 'psClosedSorts'
validate_S3(x, items = NULL, grid = NULL, ...)
as_psClosedSorts(obj, ...)
## S3 method for class 'psSort'
as_psClosedSorts(obj, items = NULL, ...)
## S3 method for class 'psClosedSorts'
plot(x, column = 1, use_js = NULL, ...)
|
csorts |
|
x |
An object with one of the pensieve S3 classes. |
items |
|
grid |
|
... |
Arguments passed onto other methods. Not currently used. |
obj |
An object which can be coerced to an integer array of class psClosedSorts. |
column |
Positive integer scalar, giving the column of the psClosedSorts object to plot.
Defaults to |
use_js |
A logical flag, indicating whether an interactive, java-script variant of the plot should be returned.
Defaults to |
A numeric matrix of class psClosedSorts.
validate_S3
: Validation against items and grid (recommended)
as_psClosedSorts
: Coercion from psSort (creates one row)
plot
: plotting
Other S3 classes from pensieve
:
correlate()
,
extract()
,
psGrid()
,
psItemContent()
,
psOpenSorts()
,
psOpenSort()
,
psPeople()
,
score()
Other plotting functions:
correlate()
,
extract()
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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | # create simple grids ====
# make simple matrix by hand
m <- matrix(data = c(FALSE, TRUE, TRUE, TRUE, FALSE, TRUE), nrow = 2)
grid_byhand <- psGrid(grid = m)
# matrix with better dimnames
dimnames(m) <- list(
c(NULL), # rows, or y-dimension is meaningless, used for ties
desirable = NULL # no use in adding actual column names
# say, desirable is the short form for the sorting conditition used on x
)
grid_byhand <- psGrid(grid = m)
# coerce grid from conventional distribution notation
grid_bycoercion <- as_psGrid(obj = c(1,2,1))
# create a single sort ====
one_sort <- matrix(
data = c(NA, "live_2_work", NA, "work_2_live", NA, NA),
nrow = 2,
dimnames = list(
c(NULL),
# this is for rownames, of which there are none, because those are just ties
desirable = NULL # no really useful dimnames
# 'desirable' is a short name for the description of the sorting axis
# (here, as typically, x)
)
)
one_sort <- psSort(sort = one_sort)
# you can coerce an empty (all `NA`) sort from grid
one_sort_from_grid <- as_psSort(obj = grid_byhand)
# you can coerce a sort from an integer(ish) vector, with cells filled from the bottom up
one_sort_from_vec <- as_psSort(obj = c(foo = -1, bar = 0, zap = 1, zong = 1))
# you can also pass on other arguments to `psSort()`
one_sort_from_vec_hex <- as_psSort(
obj = c(foo = -1, bar = 0, zap = 1, zong = 1),
polygon = "hexagon",
offset = "odd"
)
# you can also coerce a sort from a long data.frame, like so:
df <- tibble::tribble(
~x, ~y, ~cell,
1, 1, "foo",
# notice that there is no item at x = 2;
# the missing NA will be added by the below coercion method
3, 1, "bar"
)
one_sort_from_df <- suppressMessages(as_psSort(df))
# message would inform about no item at position 2
# you can coerce a narrower matrix inside a wider one, as per grid
m1 <- matrix( # a 2 x 1 matrix
data = c("bar", "foo"),
nrow = 2,
byrow = TRUE
)
one_sort_from_narrow_m1 <- as_psSort(
obj = m1, # this is narrower, a 2x1 matrix
grid = grid_byhand, # this is wider, a 2x3 matrix
insert_at_grid_col = 2 # this is where we start placing obj into grid
)
m2 <- matrix( # a 2 x 2 matrix
data = c("bar", NA, "foo", "zap"),
nrow = 2,
byrow = TRUE
)
one_sort_from_narrow_m2 <- as_psSort(
obj = m2, # this is narrower, a 2x2 matrix
grid = grid_byhand, # this is wider, a 2x3 matrix
insert_at_grid_col = 2 # this is where we start placing obj into grid
)
# coercion from a matrix will fill in available cells in grid from the bottom up
grid2 <- matrix(
data = c(
TRUE, FALSE, TRUE,
FALSE, FALSE, TRUE,
TRUE, TRUE, FALSE
),
ncol = 3
)
grid2 <- psGrid(grid = grid2)
m3 <- matrix(
data = c(
NA, "foo", "bar",
NA, NA, "zap",
"zong", NA, NA
),
ncol = 3
)
one_sort_from_m3 <- as_psSort(
obj = m3, # notice how the NAs are *in the wrong order* as per grid
grid = grid2
)
# create multiple sorts ====
# simple case with one condition of instruction
csorts <- matrix(
data = c(-1, 0, 1, -1),
nrow = 2,
byrow = TRUE,
dimnames = list(
people = c("Lisa", "Peter"),
items = c("live_2_work", "work_2_live")
)
)
csorts <- psClosedSorts(csorts)
# you can coerce a *row* (person) of a 'psClosedSorts' object from a *single* "raw" psSort
csorts_from_one_sort <- as_psClosedSorts(obj = one_sort)
# this also works for psSort with offsets
csorts_from_one_sort_hex <- as_psClosedSorts(obj = one_sort_from_vec_hex)
# it is recommended to also supply 'items' to the coercion
# so that items are properly ordered and missing items set to NA
csorts_w_items <- as_psClosedSorts(
obj = one_sort,
items = c("work_2_live", "live_2_work", "enjoy_work")
# you can pass a proper 'psItemContent' object to items, but also just item handles
)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.