Аргумент ограничен, он не может быть отрицательным символьным вектором, как @ 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
не объясняйте этот нелогичный результат. Кто-нибудь знает, почему это?