Solo estoy leyendo el libro "R in a Nutshell". Y parece como si me saltara la parte donde el "." como en "sample.formula" se explicó.
> sample.formula <- as.formula(y~x1+x2)
¿Es la muestra un objeto con una fórmula de campo como en otros idiomas? Y si es así, ¿cómo puedo averiguar qué otros campos / funciones tiene este objeto? (Declaración de tipo)
EDITAR: Acabo de encontrar otro uso confuso del ".":
> svm(formula = is_spam~., data = spambase.training)
(el punto entre ~.,)
.
en la fórmula le dice a R que use todas las variables en el marco de datosspambase.training
(exceptois_spam
) como predictores. El modelo se ajusta con .y ~ 1
Respuestas:
El punto se puede usar como en el nombre normal. Sin embargo, tiene una interpretación especial adicional. Supongamos que tenemos un objeto con clase específica:
Ahora declare
myfunction
como genérico estándar de la siguiente manera:Ahora declara la función
Entonces el punto tiene un significado especial. Para todos los objetos con
myclass
llamadas de clasellamará realmente a la función
myfunction.myclass
:Esto se usa ampliamente en R, el ejemplo más apropiado es la función
summary
. Cada clase tiene su propiasummary
función, por lo que cuando se ajusta a algún modelo, por ejemplo (que generalmente devuelve un objeto con una clase específica), debe invocarsummary
y llamará a la función de resumen apropiada para ese modelo específico.fuente
...
(que es un solo lexema, no una secuencia de tres diferentes) como un "punto", mientras que la pregunta claramente significa un punto.
tal como se usa en fórmulas y nombres de una manera completamente diferente, como se describe correctamente de manera contemporánea. respuesta de Chase.Mira la página de ayuda
?formula
con respecto a.
Aquí están los bits relevantes:Alternativamente, los paquetes
reshape
yreshape2
usan.
y...
un poco diferente (de?cast
):fuente
Hay algunas excepciones (envío del método S3), pero generalmente se usa simplemente como ayuda de legibilidad y, como tal, no tiene un significado especial.
fuente
.
. Eso pertenece a los nombres de las funciones. En cuanto a los nombres de objetos (no funcionales), entonces sí, no hay un significado especial..
hace que el objeto sea invisiblels()
.El punto en sample.formula no separa la muestra de la fórmula , excepto visualmente. Es solo un nombre variable. Los nombres de las variables R pueden consistir en alfanuméricos y punto (.) Y guión bajo (_) con una excepción. Aquí está la regla real:
" Un nombre sintácticamente válido consiste en letras, números y los caracteres de punto o subrayado y comienza con una letra o el punto que no va seguido de un número. Los nombres como" .2way "no son válidos, y tampoco lo son las palabras reservadas " .
El segundo caso (es decir, el caso de is_spam ~. ) Es diferente y se explica más arriba.
fuente