Data.table: الرمز. أنا الاتساق عند عدم التجميع

تم إنشاؤها على ٣٠ يناير ٢٠١٨  ·  5تعليقات  ·  مصدر: Rdatatable/data.table

لقد حدث هذا قبل أن أكون متأكدًا ولكن لا يمكنني العثور على المشكلة أو منشور 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 أولاً.

bug consistency

التعليق الأكثر فائدة

آسف لم أدرك أن هناك موضوع كامل حول هذه الفكرة! هذا يعني أن هذه فكرة جيدة ، أليس كذلك؟

ال 5 كومينتر

أي شخص يتذكر أو لديه الروابط من فضلك؟

هل يمكننا استخدام .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
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات