Oprócz indeksowania tcash21, jeśli OP mógł szukać negatywnego indeksowania według nazwy. Oto kilka sposobów, co wiem, niektóre z nich są ryzykowne niż inni użyć:
mtcars[, -which(names(mtcars) == "carb")] #only works on a single column
mtcars[, names(mtcars) != "carb"] #only works on a single column
mtcars[, !names(mtcars) %in% c("carb", "mpg")]
mtcars[, -match(c("carb", "mpg"), names(mtcars))]
mtcars2 <- mtcars; mtcars2$hp <- NULL #lost column (risky)
library(gdata)
remove.vars(mtcars2, names=c("mpg", "carb"), info=TRUE)
Generalnie używam:
mtcars[, !names(mtcars) %in% c("carb", "mpg")]
bo czuję, że to bezpieczny i skuteczny.
Jeśli chodzi o ostatnie zdanie, w rzeczywistości nie potrzebujesz przecinka podczas pracy z ramkami danych, ponieważ są to listy. –
Oczywiście, ale jeśli masz zamiar zrobić ten komentarz, pokaż przynajmniej przykład, jak nie używać przecinków, które mają uzyskiwać dostęp do list. – tcash21
na przykład 'x [1,2]' = 'x [[2]] [[1]]' – tcash21