Использование точки / периода в функциях R - PullRequest
15 голосов
/ 11 марта 2012

Я недавно видел функцию в R, где кто-то использовал . в качестве аргумента. Я не могу найти какую-либо документацию по этому вопросу (кроме использования многоточия или "точка-точка-точка"). Может ли кто-нибудь указать мне направление документации или привести пример использования?

hello.world <- function(.) "Hello World"
# function(.) is what I'm asking about.

Ответы [ 2 ]

13 голосов
/ 11 марта 2012

Точка является действительным символом в именах символов, как и любая буква, поэтому . ничем не отличается от, скажем, a - в этом контексте оно не имеет особого значения.Вы можете написать что-то вроде:

> . <- 10
> . + .
[1] 20

Это может выглядеть странно, но допустимо в R. Вышеуказанное использование function(.), скажем, необычно, но синтаксически допустимо.Поскольку автор не ссылался на . в теле функции, мы никогда не узнаем, имел ли он в виду ... или просто использовал его, потому что мог.

1 голос
/ 12 декабря 2018

Хотя ответ, данный Саймоном Урбанеком, является правильным, по этой причине . предпочтительнее других символов в качестве аргумента функции.В некоторых ситуациях, таких как lapply функция должна получить аргумент в соответствии с дизайном.Но если в функции нет необходимости использовать аргумент, нам все равно нужно имя фиктивного аргумента.. - это самый маленький символ - почти невидимый, поэтому вас не отвлекает то, что предоставляет функция.function(.) так же хорош, как и function(), но имеет то преимущество, что не будет выдавать ошибку при использовании в семействе apply.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...