Я пытаюсь понять, как R имеет дело с строковыми манипуляциями и сравнениями.Строка Манипуляции и сравнения
С этой целью я создал два кадра данных, один из которых является сырыми данными, а другой - моими ссылочными данными, к которым я хотел бы сравнить. Я пытаюсь понять различные способы сравнения строк и как сравнивать кадры данных в целом (это выглядит намного проще в SQL, где вы можете просто использовать ключевое слово).
В приведенном ниже примере первым элементом являются справочные данные, а второй - необработанные данные.
grepl ("1845","UN1845")
Вернется TRUE
any ("1845"=="UN1845")
Вернется FALSE
(я предполагаю здесь, потому что слово должно полностью совпадать)
is.element ("1845","UN1845")
Вернется FALSE
(той же причине, как ЛЮБАЯ)
Если бы я хотел проверить весь d ata по отношению к каждому элементу в исходной таблице, как бы я это сделал?
От игры вокруг я мог бы сделать что-то вроде
grepl(Raw$Contents, Ref$desc)
Если исходные данные в основном строки и данные реф это строки. Однако, когда я бегу что-то вроде этого, я получаю сообщение:
In grepl(Raw$Contents, MyCode$desc)
argument 'pattern' has length > 1 and only the first element will be used
Я предполагаю, что это связано с тем, что размер таблицы для справочной таблицы отличается от таблицы я бегу сравнения против.
Образец данных:
rawdata = data.frame(A=c("UN1845","FROZEN FOOD DRY ICE","LTD QTY8000"))
refdata = data.frame(A=c("1845","8000"))
Возможно, лучше показать некоторые примерные данные и ожидаемый результат. Возможно, 'grepl (паста (Raw $ Contents, collapse =" | "), Ref $ desc)' работает. – akrun
akrun уже предоставил вам правильное решение. Если это не так, укажите свой желаемый результат. –
Привет, Дэвид, это прекрасно ... Можете ли вы сказать мне, как принять ваш ответ? –