Por que o `[` é melhor que o `subconjunto`?

Quando preciso filtrar um quadro de dados, ou seja, extrair linhas que atendem a determinadas condições, prefiro usar osubset função:

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

Em vez de[ função:

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

Existem duas razões principais para a minha preferência:

Acho que o código lê melhor, da esquerda para a direita. Mesmo as pessoas que não sabem nada sobre R podem dizer o que osubset a declaração acima está em execução.

Porque as colunas podem ser chamadas de variáveis noselect expressão, posso salvar algumas teclas. No meu exemplo acima, eu apenas tive que digitarairquality uma vez comsubset, mas três vezes com[.

Então eu estava vivendo feliz, usandosubset em todos os lugares porque é mais curto e lê melhor, até mesmo defendendo sua beleza para meus colegas programadores R. Mas ontem meu mundo se desfez. Enquanto lê osubset documentação, observe esta seção:

Atençã

Esta é uma função de conveniência destinada ao uso interativamente. Para a programação, é melhor usar as funções de subconjunto padrão como [e, em particular, a avaliação não padrão do subconjunto de argumentos pode ter consequências imprevistas.

lguém poderia ajudar a esclarecer o que os autores querem dize

Primeiro, o que eles querem dizer com "para uso interativo "? Eu sei o que é uma sessão interativa, em oposição a um script executado no modo BATCH, mas não vejo a diferença que deve fazer.

Então, você poderia explicar "a avaliação não padrão do subconjunto de argumentos "e por que é perigoso, talvez dê um exemplo?

questionAnswers(4)

yourAnswerToTheQuestion