Quand j'ai besoin de filtrer les données.le cadre, c'est à dire, d'en extraire les lignes qui répondent à certaines conditions, je préfère utiliser l' subset
fonction de:
subset(airquality, Month == 8 & Temp > 90)
plutôt que de l' [
fonction de:
airquality[airquality$Month == 8 & airquality$Temp > 90, ]
Il ya deux raisons principales pour ma préférence:
- - Je trouver le code se lit mieux, de gauche à droite. Même les gens qui ne savent rien au sujet de la R pouvait dire ce que l'
subset
déclaration ci-dessus est en train de faire. - Car les colonnes peuvent être appelées variables dans l'
select
expression, je peux économiser quelques frappes. Dans mon exemple ci-dessus, je n'avais qu'à taperairquality
une fois avec de l'subset
, mais trois fois avec de l'[
.
Donc, je vivais heureux, à l'aide de subset
partout, parce qu'elle est plus courte et se lit mieux, même plaider sa beauté à mes collègues R codeurs. Mais hier, mon monde s'est disloquée. Lors de la lecture de l' subset
de la documentation, je remarque cette section:
Avertissement
C'est une fonction de commodité prévu pour une utilisation interactive. Pour la programmation, il est préférable d'utiliser la norme. comme les fonctions [, et en particulier du non-standard de l'évaluation de l'argument sous-ensemble peuvent avoir des conséquences imprévues.
Quelqu'un pourrait-il aider à clarifier ce que les auteurs veulent dire?
Tout d'abord, que veulent-ils dire par "pour une utilisation interactive"? Je sais ce qu'est une session interactive est, par opposition à un script de s'exécuter en mode BATCH, mais je ne vois pas quelle différence il doit faire.
Alors, pouvez-vous expliquer "le non-standard de l'évaluation de l'argument sous-ensemble" et pourquoi il est dangereux, peut-être donner un exemple?
Merci!!!!