Q:

Use string to select location in data frame to store value

I have a loop that runs through models. The loop generates multiple formulas that are inserted into the model command and then processed for backward step selection using buildmer(). Using a lapply() function it does this for each data frame in a list called Species. The problem is I need to store the results in different data frames so as to not get them confused.
A simplified example of the code is:
lapply(Species, function(x){

  for (i in 1:10){
    LRm<-buildmer(formula = form.LR, family = 'binomial', control=glmerControl(optimizer="bobyqa"), data=x, crit= c('AIC'), direction = c("order", "backward"))

 #Get the species name for current model

  ID<-colnames(DIKDIK) %>%
  .[grepl("ADULTS",.)]%>%
  sub("*.ADULTS", "", .)

 paste0(ID)$AIC[i]<-AIC(LRm)

  }
})

EDIT: form.LR is the model formula which is created anew for each iteration but this code is omitted since it is irrelevant 
It will become apparent that as the code reaches the second value for x (that is running the model for the second data frame) the results will be overwritten from the results from the first since the same indexes for 'i' are being used. Therein lies the problem.
Note that I can identify which data frame was used by selecting the colname with a partial match to  "ADULTS" using grepl() for which the full column name is unique in each data frame. So I thought I could name each data frame by this string i.e. "GIRAFFE" and use it to identify where the data should be stored. But I don't seem to be able to find the right combination of paste(). And I am not even sure if what I am trying is possible.
The current code breaks down giving the error
Error in paste0(ID)[[i]] <- NA : could not find function "paste0<-"

I didn't find any other solutions to similar problems on SO so far. 
A simplified reproducible example of the Species list object would be
ADULTS.GIRAFFE<-rnorm(20, 3, sd=1)
ADULTS.DIKDIK<-rnorm(20, 3, sd=1)
ADULTS.IMPALA<-rnorm(20, 3, sd=1)

presence1<-rbinom(20, 1, .5)
presence2<-rbinom(20, 1, .5)
presence3<-rbinom(20, 1, .5)

var1<-rnorm(20, 3, sd=1)
var2<-rnorm(20, 3, sd=1)
var3<-rnorm(20, 3, sd=1)

a<-cbind(presence1, var1, var2, var3, ADULTS.GIRAFFE)
b<-cbind(presence1, var1, var2, var3, ADULTS.DIKDIK)
c<-cbind(presence1, var1, var2, var3, ADULTS.IMPALA)

Species<-list(a,b,c)

A:

Storing the data frames as a list allowed me to name each data frame in the list as so:
snames<-c("DIKDIK","THOMSONS", "GIRAFFE", "GRANTS", "IMPALA")

OutsLR<-lapply(snames, function(x){

  x<-data.frame()%>%
    insertRows(., 499, new = NA)%>%
    mutate(Number=NA)%>%
    mutate(AIC=NA)%>%
    mutate(Model=NA)

})

#Rename the data frames in the list
names(Outs) = snames

Then selecting the data frame using the string object called ID was easy
#Just for the example
ID<-"DIKDIK"

#Then 
OutsLR[[ID]][["AIC"]][i]<-AIC(LRm)

