Well, no one has chimed in yet, so I'll give it a shot.

I see your logic, and I like your continual efforts to make the package neater, 
but my take would be to leave things as they are for consistency. I think it 
would be easier for new users to find that 
    DT[,c("colA","colB")]
and 
    colvars = c("colA","colB")
    DT[,colvars]  
both don't work, and realize they need to use with=FALSE, rather than finding 
that the two lead to different results.

Joe Voelkel


-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of 
Matthew Dowle
Sent: Thursday, April 26, 2012 5:03 AM
To: [email protected]
Subject: [datatable-help] with=FALSE


Dear Datatablers,

It may be possible for these :

    DT[,1]
    DT[,1:3]
    DT[,c("colA","colB")]

all to return a data.table of those columns, rather than needing with=FALSE, 
for convenience. After all, there is no useful purpose of returning the j 
vector itself in these cases; the programmers intent is unambiguous (afaik).

Where a variable holds the vector of column names or numbers, with=FALSE would 
still be needed.

    colvars = c("colA","colB")
    DT[,colvars]  # would return the column called colvars if exists, or the 
vector itself.
    DT[,colvars,with=FALSE]   # with needed in this case

Given with=FALSE would become optional in the simpler cases, I'm thinking it 
would be backwards compatible and wouldn't cause any problems to existing code. 
Unless, there is a valid reason to return the j vector straight back (a special 
case of a larger idiom perhaps)?

Internally it would look at the j expression to see if it was a single column 
position, a call to ":" or a call to "c()", which resulted in a valid vector of 
column names or positions. Anything more complicated would need with=FALSE.  
The risk would be inconsistency and confusion, or not maybe?

This would change the very first FAQ (1.1), though. Not sure if it would make 
it easier or harder to make the transition to data.table.

Thoughts?

Matthew


_______________________________________________
datatable-help mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
_______________________________________________
datatable-help mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help

Reply via email to