R version 4.4.0 beta (2024-04-15 r86425 ucrt) -- "Puppy Cup" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 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. > options(na.action=na.exclude) # preserve missings > options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type > library(survival) > > # > # Generate each of the messages from is.ratetable > # > mdy.date <- function(m, d, y) { + y <- ifelse(y<100, y+1900, y) + as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y") + } > temp <- runif(21*2*4) > > # Good > attributes(temp) <- list(dim=c(21,2,4), + dimnames=list(c(as.character(75:95)), c("male","female"), + c(as.character(2000:2003))), + dimid=c("age","sex","year"), + type=c(2,1,4), + cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:3)*366.25), + class='ratetable') > is.ratetable(temp) [1] TRUE > > # Factor problem + cutpoints length > attributes(temp) <- list(dim=c(21,2,4), + dimnames=list(c(as.character(75:95)), c("male","female"), + c(as.character(2000:2003))), + dimid=c("age","sex","year"), + type=c(1,1,2), + cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:4)*366.25), + class='ratetable') > is.ratetable(temp, verbose=T) [1] "type[3] is numeric or factor but the cutpoint is a date" [2] "attribute type[1] is continuous; cutpoint should be null" [3] "wrong length for cutpoints 3" > > > # missing dimid attribute + unsorted cutpoint > attributes(temp) <- list(dim=c(21,2,4), + dimnames=list(c(as.character(75:95)), c("male","female"), + c(as.character(2000:2003))), + type=c(2,1,3), + cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(4:1)*366.25), + class='ratetable') > is.ratetable(temp, verbose=T) [1] "wrong length for dimid, or dimnames do not have names" [2] "unsorted cutpoints for dimension 3" > > # wrong length for dimid and type, illegal type > attributes(temp) <- list(dim=c(21,2,4), + dimnames=list(c(as.character(75:95)), c("male","female"), + c(as.character(2000:2003))), + dimid=c("age","sex","year", "zed"), + type=c(2,1,3,6), + cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:3)*366.25), + class='ratetable') > is.ratetable(temp, verbose=T) [1] "wrong length for dimid, or dimnames do not have names" [2] "type attribute must be 1, 2, 3, or 4" [3] "wrong length for type attribute" > > > # Print and summary > print(survexp.us[1:20,,c('1953', '1985')] ) Rate table with dimension(s): age sex year , , year = 1953 sex age male female 0 8.936600e-05 6.911204e-05 1 6.169963e-06 5.423669e-06 2 3.860391e-06 3.161334e-06 3 2.909162e-06 2.424089e-06 4 2.448747e-06 1.950051e-06 5 2.210350e-06 1.692520e-06 6 1.988411e-06 1.481583e-06 7 1.813065e-06 1.298053e-06 8 1.684303e-06 1.169315e-06 9 1.593900e-06 1.087146e-06 10 1.569249e-06 1.051541e-06 11 1.626780e-06 1.043325e-06 12 1.771975e-06 1.089887e-06 13 2.062389e-06 1.199447e-06 14 2.462443e-06 1.347361e-06 15 2.944779e-06 1.550072e-06 16 3.410754e-06 1.752797e-06 17 3.819231e-06 1.928140e-06 18 4.164702e-06 2.056914e-06 19 4.504735e-06 2.169256e-06 , , year = 1985 sex age male female 0 3.350073e-05 2.680036e-05 1 2.451492e-06 2.108968e-06 2 1.739100e-06 1.341882e-06 3 1.369277e-06 1.013196e-06 4 1.122754e-06 7.940941e-07 5 9.995021e-07 7.530142e-07 6 9.173378e-07 6.571643e-07 7 8.488687e-07 5.887021e-07 8 7.530153e-07 5.339338e-07 9 6.297793e-07 4.791661e-07 10 5.202416e-07 4.517830e-07 11 5.202416e-07 4.517830e-07 12 7.530134e-07 5.202412e-07 13 1.232311e-06 6.571636e-07 14 1.862374e-06 8.351727e-07 15 2.533686e-06 1.026887e-06 16 3.150341e-06 1.204921e-06 17 3.657474e-06 1.341877e-06 18 4.041315e-06 1.424054e-06 19 4.315527e-06 1.465144e-06 > summary(survexp.usr) Rate table with 4 dimensions: age ranges from 0 to 39812.25; with 110 categories sex has levels of: male female race has levels of: white black year ranges from 1940-01-01 to 2020-01-01; with 81 categories > > proc.time() user system elapsed 1.01 0.09 1.04