R: كيفية تمرير قائمة تعبيرات الاختيار (السلاسل في هذه الحالة) إلى وظيفة المجموعة الفرعية؟

StackOverflow https://stackoverflow.com/questions/2609647

  •  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) 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top