У меня есть следующий набор данных, «данные»:
A1 A2 A3 A4 A5
case1 1234 2234 223 4455 7334
case2 1254 2234 200
case3 1234 9234
case4 1274 5234 228 4655 2534
case5 1234 2634 273 7455
Каждая строка представляет случай, а каждый столбец представляет атрибут кода для этого случая, где каждый случай может иметь несколько кодов или вообще не иметь кодов. Ни один случай не может иметь несколько экземпляров одного и того же кода.
Также важно то, что каждый код может состоять из 3 или 4 цифр, а 4-значные коды являются потомками 3-значных кодов. Например, «123» будет более широким кодом, чем «1234»; «4» указывает на более конкретный тип кода «123».
Моя первоначальная функция для извлечения ящиков с кодом «1234» была
dataf <- filter(data, A1:A5 == 1234)
, но оператор попытался выполнить оператор &, а не оператор ИЛИ, а это не то, что я ищу.
Итак, в настоящее время я фильтрую так:
dataf <- filter(data, A1 == 1234 | A2 == 1234 | A3 == 1234 | A4 == 1234 | A5 == 1234)
который отлично работает для одного конкретного кода, но количество ввода, если бы я хотел отфильтровать больше кодов, было бы непомерно высоким.
В конечном счете, я хотел бы запросить все столбцы A1: A5 для любых случаев, которые имеют коды, соответствующие любым значениям в диапазонах.
123:150
or
1230:1500
, так как запрос обоих этих диапазонов вернет мне случаи, которые соответствуют любым экземплярам как родительских кодов, так и дочерних кодов.