Inspection starts by checking what kind of value a record field contains.

Program

Play the script to choose a field and inspect its simple type label.

item_index
structure_summary.R
Replay: real traced execution (multi-file project)
item_index <- 2
record <- list(count = 3, label = "ready", active = TRUE)
field <- names(record)[item_index]
kind <- class(record[[field]])[1]
label <- paste(field, kind, sep = ":")
cat(label, "\n", sep = "")
item_index <- 1
record <- list(count = 3, label = "ready", active = TRUE)
field <- names(record)[item_index]
kind <- class(record[[field]])[1]
label <- paste(field, kind, sep = ":")
cat(label, "\n", sep = "")
item_index <- 3
record <- list(count = 3, label = "ready", active = TRUE)
field <- names(record)[item_index]
kind <- class(record[[field]])[1]
label <- paste(field, kind, sep = ":")
cat(label, "\n", sep = "")
  1. item_index ← 2

    1item_index <- 22record <- list(count = 3, label = "ready", active = TRUE)
    values this step2item_index
  2. record ← count=3, label=ready, active=TRUE

    1item_index <- 22record <- list(count = 3, label = "ready", active = TRUE)3field <- names(record)[item_index]
    values this stepcount=3, label=ready, active=TRUErecord
  3. field ← label

    2record <- list(count = 3, label = "ready", active = TRUE)3field <- names(record)[item_index]4kind <- class(record[[field]])[1]
    values this steplabelfield2item_index
  4. kind ← character

    3field <- names(record)[item_index]4kind <- class(record[[field]])[1]5label <- paste(field, kind, sep = ":")
    values this stepcharacterkindlabelfield
  5. label ← label:character

    4kind <- class(record[[field]])[1]5label <- paste(field, kind, sep = ":")6cat(label, "\n", sep = "")
    values this steplabel:characterlabellabelfieldcharacterkind
  6. cat(label, " ", sep = "")

    5label <- paste(field, kind, sep = ":")6cat(label, "\n", sep = "")
    outputlabel:character
    values this steplabel:characterlabel
  1. item_index ← 1

    1item_index <- 12record <- list(count = 3, label = "ready", active = TRUE)
    values this step1item_index
  2. record ← count=3, label=ready, active=TRUE

    1item_index <- 12record <- list(count = 3, label = "ready", active = TRUE)3field <- names(record)[item_index]
    values this stepcount=3, label=ready, active=TRUErecord
  3. field ← count

    2record <- list(count = 3, label = "ready", active = TRUE)3field <- names(record)[item_index]4kind <- class(record[[field]])[1]
    values this stepcountfield1item_index
  4. kind ← numeric

    3field <- names(record)[item_index]4kind <- class(record[[field]])[1]5label <- paste(field, kind, sep = ":")
    values this stepnumerickindcountfield
  5. label ← count:numeric

    4kind <- class(record[[field]])[1]5label <- paste(field, kind, sep = ":")6cat(label, "\n", sep = "")
    values this stepcount:numericlabelcountfieldnumerickind
  6. cat(label, " ", sep = "")

    5label <- paste(field, kind, sep = ":")6cat(label, "\n", sep = "")
    outputcount:numeric
    values this stepcount:numericlabel
  1. item_index ← 3

    1item_index <- 32record <- list(count = 3, label = "ready", active = TRUE)
    values this step3item_index
  2. record ← count=3, label=ready, active=TRUE

    1item_index <- 32record <- list(count = 3, label = "ready", active = TRUE)3field <- names(record)[item_index]
    values this stepcount=3, label=ready, active=TRUErecord
  3. field ← active

    2record <- list(count = 3, label = "ready", active = TRUE)3field <- names(record)[item_index]4kind <- class(record[[field]])[1]
    values this stepactivefield3item_index
  4. kind ← logical

    3field <- names(record)[item_index]4kind <- class(record[[field]])[1]5label <- paste(field, kind, sep = ":")
    values this steplogicalkindactivefield
  5. label ← active:logical

    4kind <- class(record[[field]])[1]5label <- paste(field, kind, sep = ":")6cat(label, "\n", sep = "")
    values this stepactive:logicallabelactivefieldlogicalkind
  6. cat(label, " ", sep = "")

    5label <- paste(field, kind, sep = ":")6cat(label, "\n", sep = "")
    outputactive:logical
    values this stepactive:logicallabel
record A small named list gives the inspection target.
field name `names(record)[item_index]` chooses which field to inspect.
type label `class(record[[field]])[1]` reports a compact type name.