Skip to content

[R-Forge #5378] mult="first"|"last" changes the output type of [.data.table #340

@arunsrinivasan

Description

@arunsrinivasan

Submitted by: Michele Carriero; Assigned to: Nobody; R-Forge link

Hi there!

Having a data.table dt like:

dt <- data.table(id=rep(1:2,each=2), var=rnorm(4), key="id")

I would expect the following two expression to give the same type of output

dt[.(1:2), list(var)]
#    id         var
#1:  1  0.77227701
#2:  1  1.62441284
#3:  2 -0.04178387
#4:  2  1.20609667

dt[.(1:2), list(var), mult="last"]
#         var
#1: 1.624413
#2: 1.206097

I think having the key column(s) in both expressions is more consistent. The difference is even more noticeable when not using list inside j.

dt[.(1:4), var]
# same than dt[.(1:4), list(var)] because by-without-by
dt[.(1:2), var, mult="last"]
# [1] 1.624413 1.206097

Regardless of by-without-by methodology is not be used, I think each of the queries above should return the same "type" of output.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions