How does R do it, and should I ever be worried? I always remove columns by index, and it works exactly as I would naively expect - but HOW? The second illustration, which deletes non contiguous columns, represents what I do all the time and have some trepidation about because I don't know the mechanics (e.g. why doesn't the column formerly-known-as-4 become 3 after column 1 is dropped: doesn't vector removal from a df/list invoke a loop in C?). Can I delete a named list of columns, which are examples 4 and 5 and which generate the "unary error' mesages, without resorting to "orig.df$num1.10 <- NULL"?
Thanks! orig.df <- data.frame(cbind( 1:10 ,11:20 ,letters[1:10] ,letters[11:20] ,LETTERS[1:10] ,LETTERS[11:20] )) names(orig.df) <- c( 'num1.10' ,'num11.20' ,'lc1.10' ,'lc11.20' ,'uc1.10' ,'uc11.20' ) # Illustration 1: contiguous columns at beginning of data frame head(orig.df[,-c(1:3)]) # Illustration 2: non-contiguous columns head(orig.df[,-c(1,3,5)]) # Illustration 3: contiguous columns at end of data frame head(orig.df[,-c(4:6)]) ## as expected # Illustrations 4-5: unary errors head(orig.df[,-c(as.list('num1.10', 'lc1.10', 'uc1.10'))]) head(orig.df[,-c('num1.10', 'lc1.10', 'uc1.10')]) Mike ______________________________________________ R-help@r-project.org mailing list 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.