R: كيفية تمرير قائمة تعبيرات الاختيار (السلاسل في هذه الحالة) إلى وظيفة المجموعة الفرعية؟
-
25-09-2019 - |
سؤال
فيما يلي بعض بيانات المثال:
data = data.frame(series = c("1a", "1b", "1e"), reading = c(0.1, 0.4, 0.6))
> data
series reading
1 1a 0.1
2 1b 0.4
3 1e 0.6
التي يمكنني سحب صفوف مفردة انتقائية باستخدام مجموعة فرعية:
> subset (data, series == "1a")
series reading
1 1a 0.1
وسحب صفوف متعددة باستخدام منطقي أو
> subset (data, series == "1a" | series == "1e")
series reading
1 1a 0.1
3 1e 0.6
ولكن إذا كان لدي قائمة طويلة من تعبيرات السلسلة ، فهذا يصبح مزعجًا حقًا للإدخال ، لذلك أفضل تعريفها بطريقة أفضل ، شيء من هذا القبيل:
series_you_want = c("1a", "1e") (although even this sucks a little)
وتكون قادرة على فعل شيء كهذا ،
subset (data, series == series_you_want)
من الواضح أن ما سبق فشل ، لست متأكدًا من أفضل طريقة للقيام بذلك؟
المحلول
ربما تريد %in%
المشغل أو العامل
> dat <- data.frame(series = c("1a", "1b", "1e"), reading = c(0.1, 0.4, 0.6))
> series_you_want <- c("1a", "1e")
> subset(dat, series %in% series_you_want)
لا تنتمي إلى StackOverflow