Something like this will work
# dummy data
x <- list(c('100','a'), '100', c('a'), c('1000','b'))
numeric_x <- unlist(lapply(x,function(x) {.x <- head(x,1); as.numeric(.x)}))
character_x <- unlist(lapply(x,function(x) {.x <- tail(x,1); if(is.na(as.numeric(.x))) {return(.x)} else {return(NA)}}))
There will be a much nicer regex answer I am sure