Подтвердить что ты не робот

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

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

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

Ответ 1

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

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

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

Ответ 2

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