Je viens de lire le livre "R in a Nutshell". Et il semble que j'ai sauté la partie où le "." comme dans "sample.formula" a été expliqué.
> sample.formula <- as.formula(y~x1+x2)
Echantillon est-il un objet avec une formule de champ comme dans d’autres langues? Et si oui, comment puis-je savoir quels sont les autres champs / fonctions de cet objet? (Déclaration de type)
EDIT: Je viens de trouver une autre utilisation déroutante du ".":
> svm(formula = is_spam~., data = spambase.training)
(le point entre ~.,)
.
dans la formule dit à R d'utiliser toutes les variables de la trame de donnéesspambase.training
(saufis_spam
) comme prédicteurs. Le modèle est adapté .y ~ 1
Réponses:
Le point peut être utilisé comme dans un nom normal. Il a cependant une interprétation spéciale supplémentaire. Supposons que nous ayons un objet avec une classe spécifique:
Maintenant, déclarez en
myfunction
tant que générique standard de la manière suivante:Maintenant déclarer la fonction
Alors le point a une signification spéciale. Pour tous les objets avec
myclass
appel de classeva réellement appeler la fonction
myfunction.myclass
:Ceci est largement utilisé dans R, l'exemple le plus approprié est la fonction
summary
. Chaque classe a sa propresummary
fonction. Ainsi, lorsque vous adaptez un modèle par exemple (qui retourne généralement un objet avec une classe spécifique), vous devez appelersummary
et la fonction de récapitulatif appropriée sera appelée pour ce modèle spécifique.la source
...
(qui sont un lexème unique, pas une séquence de trois différents) comme un "point" alors que la question signifie clairement un point.
tel qu’il est utilisé dans les formules et les noms d’une manière tout à fait différente, correctement décrit dans un texte contemporain. réponds par Chase.Regardez la page d'aide pour
?formula
en ce qui concerne.
Voici les bits pertinents:Alternativement, les paquets
reshape
etreshape2
utilisent.
et...
un peu différemment (de?cast
):la source
Il existe quelques exceptions (envoi de la méthode S3), mais en général, il est simplement utilisé comme aide à la lisibilité et n'a donc pas de signification particulière.
la source
.
. Cela concerne les noms de fonctions. En ce qui concerne les noms d'objets (non fonctionnels), alors oui, il n'y a pas de signification particulière..
rend l'objet invisiblels()
.Le point dans sample.formula ne sépare pas l' échantillon de la formule , sauf visuellement. C'est juste un nom de variable. Les noms de variables R peuvent comprendre des caractères alphanumériques, des points (.) Et des traits de soulignement (_), à une exception près. Voici la règle actuelle:
" Un nom syntaxiquement valide se compose de lettres, de chiffres et du point ou des caractères soulignés et commence par une lettre ou un point non suivi d'un chiffre. Les noms tels que" .2way "ne sont pas valides, pas plus que les mots réservés. "
Le deuxième cas (c'est-à-dire le cas de is_spam ~. ) Est différent et est expliqué ci-dessus.
la source