من # 4196:
عند ملء عمود قائمة ، ينحرف rbindlist عن سلوك جميع أنواع الأعمدة الأخرى ، ويعيد عناصر NULL بدلاً من NA:
> A = data.table(c1=0, c2=list(1:3))
> B = data.table(c1=1)
> rbind(A,B,fill=TRUE)
c1 c2
<num> <list>
1: 0 1,2,3
2: 1
متوقع:
> A = data.table(c1=0, c2=list(1:3))
> B = data.table(c1=1)
> rbind(A,B,fill=TRUE)
c1 c2
<num> <list>
1: 0 1,2,3
2: 1 NA
هل يجب علينا تغيير هذا السلوك لأعمدة القائمة لملء الصفوف بقيم NA لمطابقة سلوك التعبئة = TRUE لأنواع الأعمدة الأخرى؟
العلاقات العامة مع الإصلاح المقدم إذا أردنا إجراء التغيير
يبدو السلوك الحالي جيدًا بالنسبة لي.
> str(as.integer(NULL)[1L])
int NA
> str(as.list(NULL)[1L])
List of 1
$ : NULL
لا ينبغي أن تكون IMO NA للأسباب التالية:
أنا أميل نحو نقطة جان. السلوك الحالي للعنصر الفارغ هو في الواقع طريقة قائمة لتمثيل المفقودين (لا يوجد أي كائن للإشارة إليه). يمكننا إنشاء مثال حيث كان كل عنصر في القائمة متجهًا منطقيًا ، كل عنصر يكون نتيجة بعض الحسابات. في مثل هذه الحالة ، قد يلزم تمثيل 3 حالات مختلفة: الطول 0 المنطقي ، والطول 1 المنطقي ، والحساب المفقود. إذا تم استخدام الطول المنطقي 1 NA للمفقودين ، فلا يمكن تمييز هذين 2.
هل يكفي تغيير طريقة الطباعة؟ بدلاً من عدم طباعة أي شيء ، ماذا عن NULL
؟ قد تشير طباعة NA
مرة أخرى إلى أن الطول 1 NA منطقي ، في حين أن NULL
سيكون واضحًا ، بما يتوافق مع القاعدة R التي تطبعها لعناصر القائمة الفارغة ، وستعطي تذكيرًا مرئيًا إضافيًا بأنها كانت قائمة عمودي.
نوافق أيضًا على w Jan ، ولا سيما حول الطول 0 -> الطول 1.
أنا أستخدم الأطوال (x)> 0 كثيرًا لتصفية الصفوف حسب أعمدة القائمة الفارغة.
يمكننا تخمين وضع منطقية () هناك بدلاً من ذلك ، هل هناك أي ميزة منطقية () على NULL بالرغم من ذلك؟
ماذا لو أضفنا بدلاً من ذلك جملة إلى الوثائق تشير إلى السلوك في حالة وجود عمود قائمة مفقود:
الإدخال الحالي لوسيطة التعبئة:
تملأ TRUE الأعمدة المفقودة بـ NAs. افتراضيا FALSE. عند TRUE ، يتم تعيين use.names على TRUE.
مقترح:
تملأ TRUE الأعمدة المفقودة بـ NAs أو NULL لأعمدة القائمة المفقودة. افتراضيا FALSE. عند TRUE ، يتم تعيين use.names على TRUE.
يبدو تغيير المستند جيدًا. بالإضافة إلى تغيير طريقة الطباعة الذي اقترحته أيضًا؟
التعليق الأكثر فائدة
ماذا لو أضفنا بدلاً من ذلك جملة إلى الوثائق تشير إلى السلوك في حالة وجود عمود قائمة مفقود:
الإدخال الحالي لوسيطة التعبئة:
مقترح: