Dplyr: يؤدي تحديد المتغيرات التي تحتوي على "يبدأ_ مع" و "ينتهي_ مع" و "يحتوي على" و "تطابق" إلى إرجاع نتيجة خاطئة عندما لا يكون النمط المحدد موجود

تم إنشاؤها على ١٥ يوليو ٢٠١٤  ·  3تعليقات  ·  مصدر: tidyverse/dplyr

هذا هو السلوك:

> d <- tbl_df(data.frame(xxx = 1:2, yyy = 1:2, bxx = 1:2, bbb = 1:2))
> d %>% select(starts_with('nonsense'))
Source: local data frame [2 x 4]

  xxx yyy bxx bbb
1   1   1   1   1
2   2   2   2   2
> d %>% select(ends_with('nonsense'))
Source: local data frame [2 x 4]

  xxx yyy bxx bbb
1   1   1   1   1
2   2   2   2   2
> d %>% select(matches('nonsense'))
Source: local data frame [2 x 4]

  xxx yyy bxx bbb
1   1   1   1   1
2   2   2   2   2
> d %>% select(contains('nonsense'))
Source: local data frame [2 x 4]

  xxx yyy bxx bbb
1   1   1   1   1
2   2   2   2   2

من الواضح أن وظيفة التحديد يجب ألا تُرجع جميع الأعمدة في إطار البيانات. يجب أن يؤدي إما إلى ظهور خطأ برسالة مفيدة أو إرجاع إطار بيانات فارغ. لست متأكدا أيهما سيكون أفضل.

مما يمكنني رؤيته فإن المشكلة موجودة في قائمة الوظائف المسماة select_funs في الوظيفة select_vars_q . سيتعين على المرء أن يكتشف الخطأ هناك ويقرر ما سيعود وفقًا لذلك. يسعدني تقديم طلب سحب ولكن لا أرغب حقًا في القيام بعمل دون سماع ما تعتقد أن القيمة المرتجعة الأنسب ستكون :)

bug

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

لست متأكدًا مما إذا كانت هذه مشكلة ذات صلة ، لكن ما يلي يبدو غير متسق بالنسبة لي:

> data_frame(a=1, ba=1) %>%  select(starts_with("a"), ends_with("b")) %>% names
character(0)
> 
> data_frame(a=1, ab=1) %>%  select(starts_with("a"), ends_with("b")) %>% names
[1] "a"  "ab"

ال 3 كومينتر

أعتقد أنه يجب أن يظهر خطأ ، شيء مثل "فشل تحديد أي أعمدة". يحتاج أيضًا إلى التعامل مع الحالة مثل select(mtcars, -(mpg:carb)) .

رائع. سأرسل طلب سحب خلال أسبوع أو نحو ذلك. في عطلة الصراف الآلي.

لست متأكدًا مما إذا كانت هذه مشكلة ذات صلة ، لكن ما يلي يبدو غير متسق بالنسبة لي:

> data_frame(a=1, ba=1) %>%  select(starts_with("a"), ends_with("b")) %>% names
character(0)
> 
> data_frame(a=1, ab=1) %>%  select(starts_with("a"), ends_with("b")) %>% names
[1] "a"  "ab"
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات