Аргумент ограничен, он не может быть отрицательным символьным вектором, как @ Gavin-Simpson отмечает выше. Таким образом, единственные отрицательные аргументы, которые вы можете получить - это символьная переменная или фиксированный список строковых констант, например

мер, с набором данныхmtcars

mtcars[ , "cyl"]

а также

mtcars[ , 2]

оба дают мне одну и ту же колонку. Итак, так как я могу получить все, но столбец 2, как это:

mtcars[ , -2]

Я не ожидаю этого:

mtcars[ , -"cyl"]
Error in -"cyl" : invalid argument to unary operator

вместо этого лучшее, что я могу придумать, это:

mtcars[ , !colnames(mtcars)=="cyl"]

Есть ли более простое решение?

РЕДАКТИРОВАТЬ: Кажется логичным, что если первые два метода работают, то должны работать и вторые два метода. Я надеялся, что что-то упустил. Страницы справки для?"[" или же?subset не объясняйте этот нелогичный результат. Кто-нибудь знает, почему это?

Ответы на вопрос(2)

Ваш ответ на вопрос