[R] When customizing last line, the code stops working
Frank S.
f_j_rod at hotmail.com
Thu Nov 3 13:29:49 CET 2016
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]]
More information about the R-help
mailing list