لقد حدث هذا قبل أن أكون متأكدًا ولكن لا يمكنني العثور على المشكلة أو منشور SO. أي شخص يتذكر أو لديه الروابط من فضلك؟ يبدو أنني أتذكر الرد على شخص ما شيئًا مثل " .I
مخصص للاستخدام في التجميع وفقًا للوثائق ، ولكن سيكون من الجيد توسيعه ليشمل عدم التجميع أيضًا". لا تزال صفحة الدليل تحتوي على الكلمات "أثناء التجميع" لـ .I
.
السلوك الحالي في كل من v1.10.4-3 و dev:
> X = data.table(c("a","a","b","c","c"), 10:14)
> setkey(X,V1)
> X["b"]
V1 V2
1: b 12 # ok
> X["b", .I]
[1] 1 # expected x's row number 3 (*1)
> X["b", .I, by=.EACHI]
V1 I
1: b 3 # ok
> X["b", .(.I,V2)]
I V2
1: 1 12 # expected x's row number 3 not 1 (*2)
> X["b", .(.I,V2), by=.EACHI]
V1 I V2
1: b 3 12 # ok
>
الآن ، which=TRUE
كان مخصصًا ويعمل مع الحالة الأولى (* 1):
> X["b", which=TRUE]
[1] 3
لكن تضمين أرقام صفوف x داخل j
( 2) غير ممكن حاليًا ، إلا إذا أضفت أرقام صفوف x بشكل صريح كعمود أولاً. which=TRUE
ببطء نظرًا لأنني أعتقد أن الأشخاص يصلون إلى .I
أولاً.
أي شخص يتذكر أو لديه الروابط من فضلك؟
ربما ما تبحث عنه: https://stackoverflow.com/a/34755995/ و https://github.com/Rdatatable/data.table/issues/1494 على الرغم من أن العنوان يجب أن يكون ".I in DT [i، .I] يجب أن تُرجع أرقام الصفوف من DT وليس DT [i] "(بدون by) نظرًا لأنه يحتوي بالفعل على هذا السلوك عندما يكون by = موجودًا ...؟
سؤال آخر حول .I ومن خلال = https://github.com/Rdatatable/data.table/issues/1206
هل يمكننا استخدام .I لرقم الصف العالمي وبالتالي بدون تجميع ، و. i للتجميع الداخلي وبالتالي فقط؟
dracodoc كما ذكر فرانك هذا هو # 1206
آسف لم أدرك أن هناك موضوع كامل حول هذه الفكرة! هذا يعني أن هذه فكرة جيدة ، أليس كذلك؟
مثال من 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
التعليق الأكثر فائدة
آسف لم أدرك أن هناك موضوع كامل حول هذه الفكرة! هذا يعني أن هذه فكرة جيدة ، أليس كذلك؟