Open mattdowle opened 6 years ago
Anyone remember or have the links please?
Probably what you are looking for: https://stackoverflow.com/a/34755995/ and https://github.com/Rdatatable/data.table/issues/1494 Though the title should be ".I in DT[i, .I] should return row numbers of DT not of DT[i]" (without the by) since it already has that behavior when by= is present...?
Another question about .I and by= https://github.com/Rdatatable/data.table/issues/1206
Can we use .I for global thus row number without grouping, and .i for local thus only inside grouping?
@dracodoc as mentioned by Frank this is #1206
Sorry I didn't realize there is a whole thread on this idea! That means this is a good idea right?
example from https://github.com/Rdatatable/data.table/issues/539
dt <- data.table(a=sample(letters, 100, T), b=rnorm(100))
dt[ a=="c", list(.N, .I)]
N .I
1: 4 1
2: 4 2
3: 4 3
4: 4 4
dt[a=="c", list(.N, .I), by=a]
a N .I
1: c 4 54
2: c 4 67
3: c 4 71
4: c 4 86
This has come up before I'm sure but I can't find the issue or S.O. post. Anyone remember or have the links please? I seem to remember replying to someone something like "
.I
is intended for use in grouping as per the documentation, but it would be good to extend it to non-grouping too". The man page still contains the words "while grouping" for.I
.Current behaviour in both v1.10.4-3 and dev :
Now,
which=TRUE
was intended and works for the first case (*1) :but including x's row numbers inside
j
(2) isn't currently possible, unless you add x's row numbers explicitly as a column first. It would be nice for.I
to do whatwhich=TRUE
does in the simple case (1) and maybe even slowly deprecatewhich=TRUE
argument since my guess is people reach for.I
first.