Are the rules used for naming arguments laid out somewhere ?
dplyr
and purrr
use dotted arguments (.arg
), tidyr
doesn't. dplyr
names the first argument .data
, tidyr
uses data
, purrr
uses .x
, but not always and sometimes even uses x
.
I know that the tidyverse
generally aims for consistency so I'm sure a lot of thoughts went into this, but I don't get it.
Another way to phrase my question: If I want to build functions that integrate well with the tidyverse
, how should I name my arguments ?
1 Like
Thanks Martin, it answers all my questions.
I'll summarize it as I understand it:
-
...
+ NSE = possible argument conflicts, so it's a good idea to use dotted arguments in this case
- in other cases don't use them, so they won't be there to conflict with the former, and less typing
- Not everything is consistent, because of legacy and priorities.
dplyr
is the oldest tidyverse
package so it has the most inconsistencies
- Corollary is that to be up to date with current
tidyverse
, better to look at younger functions.
I suppose the following conventions though not exhaustive would be a good start (to add dot or not see previous bullet points):
-
data.frame
(wide sense) input :data
(don't use tbl
or df
)
- if it's an element of a list, vector, or data.frame, it should be named
x
(y
, z
) if it takes a second element)
- a list :
l
- predicate function :
p
(though some functions use predicate
)
- other function :
f
- list of functions :
funs
- an integer :
n
- an environment :
env
- an id column name (as string) :
id
- for these
%operators%
: x
and y
(%>%
uses lhs
and rhs
but not newer ones)
- type:
type
1 Like