[R] When customizing last line, the code stops working

Fowler, Mark Mark.Fowler at dfo-mpo.gc.ca
Thu Nov 3 14:30:16 CET 2016


Hi Frank,

Maybe just the quotes?

paste0("dt_sp_", 1:length(sp))
[1] "dt_sp_1" "dt_sp_2" "dt_sp_3" "dt_sp_4"
noquote(paste0("dt_sp_", 1:length(sp)))
 [1] dt_sp_1 dt_sp_2 dt_sp_3 dt_sp_4


-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Frank S.
Sent: November 3, 2016 9:30 AM
To: r-help at r-project.org
Subject: [R] When customizing last line, the code stops working

Dear all,


The function I present works perfectly when I run it as written (that is, leaving NEW LINE as commented). However, when

I try to run the same function via this mentioned line (and therefore commenting LAST LINE) R gives an error message:
Error in FUN(X[[i]], ...) : object 'dt_sp_1' not found. I do not understand why I don't get the same result.


Thanks in advance for any help!


Frank S.


all.sp <- function(age.u, open, close) {

require(data.table)
dt <- data.table( id = c(rep(1, 2), 2:4, rep(5, 2)),
   sex = as.factor(rep(c(0, 1), c(3, 4))),
   fborn =  as.Date(c("1935-07-25", "1935-07-25", "1939-07-23", "1943-10-05",
                      "1944-01-01", "1944-09-07", "1944-09-07")) )

sp <- seq(open, close, by = "year")
dt_sp <- list()
for (i in 1:length(sp)) {
  vp <- as.POSIXlt(c(as.Date("1000-01-01"), sp))
  vp$year <- vp$year - age.u
  dt.cut <- as.numeric(cut(x = as.POSIXlt(dt$fborn), breaks = vp, right = TRUE, include.lowest = TRUE))
  dt_sp[i] <- split(dt, factor(dt.cut, i))
  dt_sp[[i]] <- data.table(dt_sp[[i]])[, entry_sp := sp[i]]
  assign(paste0("dt_sp_", 1:length(sp))[i], dt_sp[[i]])
  }

  union <- rbind(dt_sp_1, dt_sp_2, dt_sp_3, dt_sp_4)     # LAST LINE: IT WORKS


  # I TRY TO CUSTOMIZE LAST LINE, BUT THEN CODE STOPS WORKING
  # union <- do.call(rbind, lapply(paste0("dt_sp_", 1:length(sp)), get))     # NEW LINE
}

# Example:
result <- all.sp(age.u = 65, open = as.Date("2007-01-01"), close = as.Date("2010-05-01"))

	[[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list