У меня есть следующая цель, которую я хочу достичь:
У меня есть две таблицы.В одной из таблиц (Table_one) есть столбец «Предложение».Он имеет следующие значения:
SENTENCE
I live in New York
A bad day
A very good day
У меня есть другая таблица (Table_two) со столбцом с именем «Текст» в форме:
TEXT
New York
good day
very good day
Я хочу сопоставить фразы в«Текст» к предложениям в «предложениях», чтобы увидеть, содержатся ли они в каком-либо из наблюдений «предложений».Я хочу вывести те предложения, которые содержат текст.
Я понимаю, что это само по себе не сложно, но у меня есть уникальный случай, когда я не смог найти много информации в Интернете.
Мне нужна таблица, которая приводит к:
MATCH
I live in New York
A very good day
A very good day
Я попробовал следующий код:
proc sql;
create table match as
select a.* from table_one as a, table_two as b
where find(a.Sentence, b.Text)>0
;
run;
Я получаю следующий результат:
MATCH
I live in New York
A very good day
Другими словами, поскольку наблюдения в Table_two: «хороший день» и «очень хороший день» оба содержатся в предложении Table_one: «очень хороший день», он трактуется какединичное наблюдение и возвращалось только один раз в выводе.
Однако я хотел бы, чтобы обе фразы обрабатывались как отдельные наблюдения и выводились дважды, как мой желаемый вывод.
Я пробовал обаФункции FIND () и INDEX ().Но оба дают мне одинаковые результаты.
Есть ли какой-либо способ избежать вывода одного наблюдения и получить два отдельных наблюдения, даже если в одном предложении есть фразы?
Любая помощь будет принята с благодарностью,