From murdoch.duncan at gmail.com  Fri Apr 13 21:51:24 2018
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Fri, 13 Apr 2018 15:51:24 -0400
Subject: [Rd] In base R: argument `list` does not accept lists
In-Reply-To: <trinity-3b077c08-3449-471d-8752-8c56b47800b1-1523618487386@3c-app-webde-bs06>
References: <24e3bce3ef024b3ca921f7c8319b37a6@C119S212VM016.msvyvi.vaha.local>
 <trinity-3b077c08-3449-471d-8752-8c56b47800b1-1523618487386@3c-app-webde-bs06>
Message-ID: <71f5532a-3a2e-b9f1-d23f-b407f3bd9d8b@gmail.com>

On 13/04/2018 7:21 AM, Johannes Rauh wrote:
> The function `base::rm` has an argument that is named `list`.  However, if a list is passed as `list` to `rm` (e.g.: `rm(list = list("x", "y"))`), an error is raised: "invalid first argument".
> 
> Agreed, the documentation says that `list` should be "a character vector naming objects to be removed."  Still, wouldn't it make sense to allow a list of characters as an argument?
> 
> The other alternative to make things consistent would be to rename the argument, but that would break compatibility, of course.

There are other functions (data(), save(), remove(), package.skeleton(), 
etc.) that use the convention that "list" names a character vector full 
of names, others where variations on that name ("affinity.list", 
"pkglist") have the same purpose, and still others where "list" takes a 
different kind of object entirely (untar(), unzip()).  I couldn't find 
any examples where an argument named "list" takes a list as a value.

There really isn't any substitute for reading the documentation for any 
function you choose to use.

Duncan Murdoch



[Rd] In base R: argument `list` does not accept lists
Duncan Murdoch