В начале имени он работает как соглашение с именем файла UNIX, чтобы по умолчанию сохранять скрытые объекты.
ls()
character(0)
.a <- 1
ls()
character(0)
ls(all.names = TRUE)
[1] ".a"
Это может быть просто токен без особого смысла, он не делает ничего больше, чем любой другой разрешенный токен.
my.var <- 1
my_var <- 1
myVar <- 1
Используется для отправки S3-метода. Итак, если я определяю простой класс «myClass» и создаю объекты с этим атрибутом класса, тогда общие функции, такие как print (), будут автоматически отправляться на мой конкретный метод печати.
myvar <- 1
print(myvar)
class(myvar) <- c("myClass", class(myvar))
print.myClass <- function(x, ...) {
print(paste("a special message for myClass objects, this one has length", length(x)))
return(invisible(NULL))
}
print(myvar)
В синтаксисе S3 существует двусмысленность, поскольку вы не можете определить имя функции, будь то метод S3 или просто точка в имени. Но это очень простой механизм, который очень мощный.
Для каждого из этих трех аспектов есть намного больше, и вы не должны воспринимать мои примеры как хорошую практику, но они являются основными различиями.