Hi, If df is a dataframe, its last column can't be deleted using "[<-", but other columns can be deleted this way.
Example: > (df <- df0 <- data.frame(x = 1:3, y = 4:6, z = 7:9)) x y z 1 1 4 7 2 2 5 8 3 3 6 9 > df[, "z"] <- NULL Error in x[[jj]] : subscript out of bounds > df[, 3] <- NULL Error in x[[jj]] : subscript out of bounds > df["z"] <- NULL Error in x[[jj]] : subscript out of bounds > df[3] <- NULL Error in x[[jj]] : subscript out of bounds > df[, "y"] <- NULL > df x z 1 1 7 2 2 8 3 3 9 > df <- df0; df[, 2] <- NULL > df <- df0; df["y"] <- NULL > df <- df0; df[2] <- NULL Deleting using "$<-" and "[[<-" works for all columns. Is it wrong to use "[<-" for deleting? help("[<-.data.frame") has an example, but it doesn't work for deleting the last column either: > sw <- swiss[1:5, 1:4] # select a manageable subset > ## adding a column > sw["new1"] <- LETTERS[1:5] # adds a character column > sw[["new2"]] <- letters[1:5] # ditto > sw[, "new3"] <- LETTERS[1:5] # ditto > sw$new4 <- 1:5 > sw$new4 <- NULL # delete the column > (sw0 <- sw) Fertility Agriculture Examination Education new1 new2 new3 Courtelary 80.2 17.0 15 12 A a A Delemont 83.1 45.1 6 9 B b B Franches-Mnt 92.5 39.7 5 5 C c C Moutier 85.8 36.5 12 7 D d D Neuveville 76.9 43.5 17 15 E e E > # This works: > sw[6:8] <- list(letters[10:14], NULL, aa=1:5) # delete col7, update 6, append > # But this doesn't: > sw <- sw0 > sw[6:8] <- list(letters[10:14], aa=1:5, NULL) Error in x[[jj]] : subscript out of bounds Best, Hsiu-Khuern. ---------- Version: platform = i486-pc-linux-gnu arch = i486 os = linux-gnu system = i486, linux-gnu status = major = 2 minor = 4.1 year = 2006 month = 12 day = 18 svn rev = 40228 language = R version.string = R version 2.4.1 (2006-12-18) Locale: C Search Path: .GlobalEnv, package:datasets, package:stats, package:graphics, package:grDevices, package:utils, package:methods, Autoloads, package:base ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel