I am trying to figure out R data types and/or storage mode. For example:
#From a clean workspace gc()
used (Mb) gc trigger (Mb) Ncells 415227 11.1 597831 16 Vcells 103533 0.8 786432 6
x <- seq(0,100000,1) is.integer(x)
[1] FALSE
is.double(x)
[1] TRUE
object.size(x)
[1] 800036
gc()
used (Mb) gc trigger (Mb) Ncells 415247 11.1 667722 17.9 Vcells 203543 1.6 786432 6.0
x <- as.integer(x) is.integer(x)
[1] TRUE
is.double(x)
[1] FALSE
gc()
used (Mb) gc trigger (Mb) Ncells 415249 11.1 741108 19.8 Vcells 153543 1.2 786432 6.0
x <- 1:100000 is.integer(x)
gc()
used (Mb) gc trigger (Mb) Ncells 415278 11.1 741108 19.8 Vcells 153553 1.2 786432 6.0
is.integer(3)
[1] FALSE
is.double(3)
[1] TRUE
is.integer(3 * as.integer(5))
[1] FALSE
is.integer(as.integer(3) * as.integer(5))
[1] TRUE
is.integer(c(as.integer(5),as.integer(6),as.integer(7)))
[1] TRUE
is.integer(c(as.integer(5),as.integer(6),7))
[1] FALSE
is.integer(seq(as.integer(5),as.integer(10),1))
[1] FALSE
is.integer(seq(as.integer(5),as.integer(10),as.integer(1)))
[1] TRUE So it looks like R stores numbers as doubles unless the are converted to integers (long) with the as.integer() function or they are created with the : operator. If any of the numbers to a function are not type integer than the function returns type double. Is this the case? Thanks. Ben Stabler Oregon Department of Transportation