Почему `[` лучше чем `subset`?

Когда мне нужно отфильтровать data.frame, т.е. извлечь строки, которые удовлетворяют определенным условиям, я предпочитаю использоватьsubset функция:

subset(airquality, Month == 8 & Temp > 90)

Скорее чем[ функция:

airquality[airquality$Month == 8 & airquality$Temp > 90, ]

Есть две основные причины моего предпочтения:

Я считаю, что код читается лучше, слева направо. Даже люди, которые ничего не знают о R, могут сказать, чтоsubset Заявление выше делает.

Поскольку столбцы могут называться переменными вselect Выражение, я могу сохранить несколько нажатий клавиш. В моем примере выше, мне нужно было только набратьairquality однажды сsubset, но три раза с[.

Так что я жил счастливым, используяsubset везде, потому что он короче и читается лучше, даже пропагандируя его красоту моим коллегам по программированию. Но вчера мой мир распался. Читаяsubset документация, я замечаю этот раздел:

Предупреждение

Это удобная функция, предназначенная для интерактивного использования. Для программирования лучше использовать стандартные функции подмножеств, такие как [, и, в частности, нестандартная оценка подмножества аргументов может иметь непредвиденные последствия.

Может ли кто-нибудь помочь уточнить, что авторы имеют в виду?

Во-первых, что они подразумевают поддля использования в интерактивном режиме«Я знаю, что такое интерактивный сеанс, в отличие от сценария, запускаемого в режиме BATCH, но я не понимаю, какое это должно иметь значение.

Тогда не могли бы вы объяснитьнестандартная оценка подмножества аргументови почему это опасно, может быть, привести пример?

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

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