Использование точки/периода в R-функциях
Недавно я видел функцию в R, где кто-то использовал .
в качестве аргумента. Кажется, я не могу найти документацию по этому вопросу (кроме использования многоточия или точки "точка-точка" ). Может ли кто-нибудь указать мне в сторону документации или предоставить пример использования?
hello.world <- function(.) "Hello World"
# function(.) is what I'm asking about.
Ответы
Ответ 1
Dot является допустимым символом в именах символов, как и любая буква, поэтому .
не отличается от сказанного a
- он не имеет особого значения в этом контексте. Вы можете писать такие вещи, как:
> . <- 10
> . + .
[1] 20
Это может показаться странным, но действительным в R. Приведенное выше использование function(.)
можно назвать необычным, но синтаксически правильным. Поскольку автор не ссылался на .
в теле функции, мы никогда не узнаем, имел ли он в виду ...
или просто использовал его, потому что мог.
Ответ 2
В то время как ответ, данный Саймоном Урбанеком, является правильным, здесь причина .
предпочтительнее других символов в качестве аргумента функции. В некоторых ситуациях, таких как lapply
функция должна получить аргумент в соответствии с дизайном. Но если нет необходимости в аргументе внутри функции, нам все равно нужно фиктивное имя аргумента. .
это самый маленький символ - почти невидимый, так что вас не отвлекает то, что предоставляет функция. function(.)
же хороша, как и function()
но имеет то преимущество, что она не выдаст ошибку при использовании в семействе apply
.