Пару лет назад я взломал систему, которая использует ленивую оценку, чтобы позволить пользователям выполнять операции фильтрации на основе имен полей, возвращаемых API.Это позволяет пользователям писать код R, который преобразуется в вызовы API, но имена полей рассматриваются как «имена переменных».Например:
files() %>% filter(~ file_id == "XYZ" & cases.case_id %in% c("a", "b"))
file_id
и cases.case_id
не являются переменными R, а вводятся в среду формулы при оценке.То, что я ищу, это способ сделать автозаполнение, используя эти имена в качестве типа пользователя.Имена полей известны априори с учетом контекста files()
и filter
.
К вашему сведению, пакет, который реализует это, является Bioconductor GenomicDataCommons package .Некоторый соответствующий код: здесь .
Редактировать: Чтобы уточнить и упростить еще больше, если у меня есть символьный вектор токенов, как я могу сделать так, чтобы R выполнял табуляцию на этих токенах вданный контекст (в данном случае контекст формулы)?