У меня есть родительский запрос data.frame с 403 строками и 5 столбцами, где я буду использовать его NUTS_ID
и NUTS_NAME
в качестве справочных столбцов для фильтрации данных в целевых data.frames (427 строк и 7 столбцов), пожалуйста.посмотрите пример фрагментов данных на лету .Для этого я попытался base::match
получить общие строки в целевом data.frame, используя code
столбцы в запросе data.frame, но это неэффективно, поскольку шаблон не согласован.
Вот заголовок запроса data.frame:
> query_df
CNTR_CODE FID LEVL_CODE NUTS_ID NUTS_NAME
1: DE DEF0D 3 DEF0D Segeberg
2: DE DEF0E 3 DEF0E Steinburg
3: DE DEF0F 3 DEF0F Stormarn
4: DE DEG01 3 DEG01 Erfurt, Kreisfreie Stadt
5: DE DE119 3 DE119 Hohenlohekreis
---
398: DE DEG0K 3 DEG0K Saale-Orla-Kreis
399: DE DEG0L 3 DEG0L Greiz
400: DE DEG0M 3 DEG0M Altenburger Land
401: DE DEG0N 3 DEG0N Eisenach, Kreisfreie Stadt
402: DE DEG0P 3 DEG0P Wartburgkreis
Вот фрагменты целевого data.frames:
> target_df
Country Name
1: de111 Stuttgart, Stadtkreis
2: de112 Böblingen
3: de113 Esslingen
4: de114 Göppingen
5: de115 Ludwigsburg
---
423: deg0k Saale-Orla-Kreis
424: deg0l Greiz
425: deg0m Altenburger Land
426: deg0n Eisenach, Kreisfreie Stadt
427: deg0p Wartburgkreis
Вот моя попытка прочитать пример фрагментов данных на лету :
library(openxlsx)
query_df <- read.xlsx("example_data_snippets.xlsx", sheet = 1)
target_df1 <- read.xlsx('example_data_snippets.xlsx', sheet = 2)
для фильтрации данных в целевом data.frame с использованием ключа ссылочного столбца в запросе data.frame, я просто попытался сделать следующее:
target_df1[match(query_df$NUTS_ID, target_df$Country),]
но это дало мне ошибку, возможно, моя приведенная выше попытка не может иметь дело с кодом верхнего и нижнего регистра для сопоставления.
желаемый вывод :
в моем желаемом выводе отфильтрованный data.frame может иметь такой же код, NUTS_ID
, найдя совпадение.
Как я могу оптимизировать свое решение выше?Есть ли эффективный способ фильтрации данных в нескольких data.frames с помощью справочного столбца в запросе data.frame?Есть ли в dplyr
или data.table
эффективные утилиты?Есть ли эффективный способ сделать это?Есть идеи?