[datatable-help] can one name a collection of columns by specifying just the first and the last column
Eduard Antonyan
eduard.antonyan at gmail.com
Tue Feb 10 22:59:41 CET 2015
Not having to type `DT` twice would increase readability/reduce errors,
especially that real-life data.tables have much longer names. There was a
related FR to this which suggested incorporating regex and wildcard syntax
- not sure what happened to it.
On Tue, Feb 10, 2015 at 3:45 PM, Arunkumar Srinivasan <aragorn168b at gmail.com
> wrote:
> Mel,
>
> The usage would be something like:
>
> DT[, from:to, with=FALSE]
> # or
> DT[, .SD, .SDcols = from:to]
>
> where from and to are the start and end column names. I agree there’s no
> real advantage in terms of typing/prone to errors.
>
> There might be some merit in readability, as people normally remember
> column names and not numbers… And this allows you to refer to the names
> directly without having to type DT and then look up the column or use a
> match() to find out the column programatically or do:
>
> DT[, .SD, .SDcols = names(DT)[some_idx]]
>
>
>
> --
> Arun
>
> On 10 Feb 2015 at 22:39:14, Bacou, Melanie (mel at mbacou.com) wrote:
>
> Everyone,
>
> The varA...varZ construct is borrowed from STATA syntax. Probably a
> reason why it got into subset() in the first place, though definitely not
> very R-like. In fact I’ve never come across this construct in R before and
> had no idea it was actually working either!
>
> I’m not sure dt[, .SD, .SDcols=list(varA...varZ)] is less typing, less
> prone to error, or more readable than dt[, .SD, .SDcols=names(dt)[1:24]
> and using indices is also more flexible (what about if we want more complex
> sequences). I can see one use case for this syntax though if dt might
> change over time but variables always come in known sequences.
>
> Not sure we should really encourage it — but agreed with Arun, if it’s in
> base::subset() then no reason why not.
>
> —Mel.
>
> On 2/10/2015 1:50 PM, Arunkumar Srinivasan wrote:
>
> I had the same reaction when I found out ‘subset’ already did this :-).
> I’ve the same impression that it’s a bit odd, even though some people
> prefer it..
>
> Arun
>
> On 10 Feb 2015 at 19:39:29, Chris Neff (caneff at gmail.com) wrote:
>
> Wow, didn’t realize that worked! So there is precedent then. It just looks
> funny to me, but you are right it is easily avoided. I just didn’t want to
> see more divergence from subset and data.frame logic, but since this
> already works with subset that’s fine.
> On Tue Feb 10 2015 at 1:34:03 PM Arunkumar Srinivasan
> aragorn168b at gmail.com <http://mailto:aragorn168b@gmail.com> wrote:
>
> Chris,
> But what’s the problem? You can simply not use it?
> It’s not that uncommon. `base::subset()` does this.
> --
> Arun
>
> On 10 Feb 2015 at 19:31:43, Chris Neff (caneff at gmail.com) wrote:
>
> I don't like this idea. It adds extra that it doesn't need to. Doing it with column numbers is more straightforward, and if all you have is names you can get numbers by doing match() or whatever and then getting the sequence with seq(). Having a sequence of column names is odd.
> On Tue Feb 10 2015 at 1:28:25 PM Arunkumar Srinivasan <aragorn168b at gmail.com> <aragorn168b at gmail.com> wrote:
>
> Farrel,
> It could be useful. Please file an issue on the github project page. Thanks.
> --
> Arun
>
> On 10 Feb 2015 at 01:08:46, Farrel Buchinsky (fjbuch at gmail.com) wrote:
>
> So lets say one has a data.table with the following columns
> first.name, last.name, height, weight, shoe.size, eye.color, hair.length, appendage.size, ear.length
> If one wanted to just include weight through hair.length one would have to go something such as this
> dt[,list(weight, shoe.size, eye.color, hair.length)]
> Is there a way to do something along the lines of
> dt[,list(weight...hair.length)]
> If so, can you direct me to the documentation? If not can you build it? Is it difficult? Some data.tables have many columns.
> Thanking you in anticipation.
> Farrel
> _______________________________________________
> datatable-help mailing list
> datatable-help at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
> _______________________________________________
> datatable-help mailing list
> datatable-help at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
>
> ------------------------------
>
> datatable-help mailing list
> datatable-help at lists.r-forge.r-project.org
>
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
>
>
> --
> Melanie BACOU
> International Food Policy Research Institute
> Snr. Program Manager, HarvestChoice
> Work +1(202)862-5699
> E-mail m.bacou at cgiar.org
> Visit www.harvestchoice.org
>
>
> _______________________________________________
> datatable-help mailing list
> datatable-help at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/datatable-help/attachments/20150210/61abaf48/attachment-0001.html>
More information about the datatable-help
mailing list