Data.table: FR: تعيين أسماء لـ CJ () مثل data.table () يفعل

تم إنشاؤها على ١٧ مارس ٢٠١٦  ·  3تعليقات  ·  مصدر: Rdatatable/data.table

كثيرا ما أفعل

DT[CJ(colA = colA, colB = colB, unique=TRUE), on=c("colA","colB")]
# to complete missing levels

# or 
DT[, CJ(colA = colA, colB = colB, unique=TRUE)][!DT, on=c("colA","colB")]
# to identify missing levels
# http://stackoverflow.com/a/36065607/1191259

سيكون من الرائع أن أفلت من كتابة colA و colB مرات أقل. FR هنا ل

CJ(colA, colB, unique=TRUE, names=TRUE) 

لاستنتاج الأسماء colA و colB ، ربما باستخدام أي طريقة تستخدمها data.frame () و data.table () ( make.names ؟).

(يمكن تقليل تكرار الاسم أكثر إذا كان on=.Icols شيئًا ، على ما أعتقد ، لكنني سأترك ذلك لـ FR منفصل.)

وظائف SO للتحديث ...

enhancement

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

+1 ولا أرى الحاجة إلى الوسيطة names - يجب أن يكون هذا هو السلوك الوحيد. مع تغيير بناء جملة الانضمام إلى استخدام "على" بدلاً من setkey ، أصبح هذا نقطة شائكة كبيرة بالنسبة لي.

أود أيضًا أن أرى unique = TRUE هو الخيار الافتراضي - لا يمكنني التفكير في _ مطلقًا_ عدم الحاجة إلى تمييز الوسيطات إلى CJ .

ال 3 كومينتر

يأخذ CJ ... كوسيطة أولى ، وستكون هذه الوظيفة طريقة عامة ، لذا AFAIK سنحتاج إلى تغييرها إلى CJ(x, ...) ، يمكن إجراء هذه التغييرات معًا # 1090

+1 ولا أرى الحاجة إلى الوسيطة names - يجب أن يكون هذا هو السلوك الوحيد. مع تغيير بناء جملة الانضمام إلى استخدام "على" بدلاً من setkey ، أصبح هذا نقطة شائكة كبيرة بالنسبة لي.

أود أيضًا أن أرى unique = TRUE هو الخيار الافتراضي - لا يمكنني التفكير في _ مطلقًا_ عدم الحاجة إلى تمييز الوسيطات إلى CJ .

jangorecki لم أتطرق إلى # 1090 / # 814 حتى الآن. أفضل كقائمة بذاتها ، على ما أعتقد ، ما لم أفقد شيئًا ما

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

mattdowle picture mattdowle  ·  3تعليقات

sengoku93 picture sengoku93  ·  3تعليقات

DavidArenburg picture DavidArenburg  ·  3تعليقات

st-pasha picture st-pasha  ·  3تعليقات

MichaelChirico picture MichaelChirico  ·  3تعليقات