Rev 81944 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
R Under development (unstable) (2022-03-19 r81942) -- "Unsuffered Consequences"Copyright (C) 2022 The R Foundation for Statistical ComputingPlatform: x86_64-pc-linux-gnu (64-bit)R is free software and comes with ABSOLUTELY NO WARRANTY.You are welcome to redistribute it under certain conditions.Type 'license()' or 'licence()' for distribution details.R is a collaborative project with many contributors.Type 'contributors()' for more information and'citation()' on how to cite R or R packages in publications.Type 'demo()' for some demos, 'help()' for on-line help, or'help.start()' for an HTML browser interface to help.Type 'q()' to quit R.> ### Tests of structure() and deparsing.>> ## deparsing has always treated some attributes specially (apparently> ## to allow inter-operability with S).> ## The mapping is> ## as printed: "dim", "dimnames", "names", "tsp", "levels"> ## deparsed: ".Dim", ".Dimnames", ".Names", ".Tsp", ".Label"> ## structure() remaps to the printed form.>> ## The remapping in deparse will be removed in R 4.2.0.>> X <- matrix(1:4, 2, 2, dimnames=list(c("A", "B"), 1:2))> names(attributes(X))[1] "dim" "dimnames"> cat(deparse(X), "\n")structure(1:4, dim = c(2L, 2L), dimnames = list(c("A", "B"), c("1", "2")))> Y <- structure(1:4, .Dim = c(2L, 2L),+ .Dimnames = list(c("A", "B"), c("1", "2")))> identical(X, Y)[1] TRUE>> z <- ts(1:10, frequency = 4, start = c(1959, 2))> attributes(z)$tsp[1] 1959.25 1961.50 4.00$class[1] "ts"> cat(deparse(z), "\n")structure(1:10, tsp = c(1959.25, 1961.5, 4), class = "ts")> z2 <- structure(1:10, .Tsp = c(1959.25, 1961.5, 4), class = "ts")> identical(z, z2)[1] TRUE>> ## levels <-> .Label is most relevant to factors, but is always remapped.> x <- 1:3> attr(x, "levels") <- letters[x]> cat(deparse(x), "\n")structure(1:3, levels = c("a", "b", "c"))> y <- structure(1:3, .Label = c("a", "b", "c"))> identical(x, y)[1] TRUE>>> ## Factors were long deparsed with double (rather than integer codes).> ## As from R 2.5.0 parsing such a deparse will given an error, so> ## structure() coerces the codes to an integer vector.> ## Example from an earlier version of Puromycin.R> state <- structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2),+ .Label = c("treated", "untreated"), class = "factor")> typeof(state)[1] "integer"> storage.mode(state)[1] "integer"> attributes(state)$levels[1] "treated" "untreated"$class[1] "factor"> cat(deparse(state))structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), levels = c("treated", "untreated"), class = "factor")>> state2 <- structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,+ 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L),+ levels = c("treated", "untreated"), class = "factor")> identical(state,state2)[1] TRUE>