add drop parameter to subset and as.list function