2017-01-05 22 views
1

У меня есть набор данных в таблице, содержащий данные о продажах, в которых перечислены все продажи, которые компания имела в прошлом году. Каждый клиент имеет уникальный идентификатор, и многие клиенты возвращаются. Я пытаюсь выяснить, как создать вычисляемое поле в таблице, которое дает True | Ложный ответ на вопрос, появляется ли данный идентификатор пациента снова в наборе данных в течение заданного периода времени (скажем, в течение шести недель после данного наблюдения).Найти наблюдения за ID в определенные сроки в будущем в таблице

Я попытался запустить его с помощью LOOKUP, но я не смог эффективно определить увеличение времени.

ответ

1

Это было бы так, как я подхожу к нему. Создайте два параметра даты, начиная и заканчивая.

Затем создайте фильтр calc для даты.

[date] >= [param_date_start] 
and 
[date] <= [param_date_end] 

Поместите это в полку фильтра, установленную в ИСТИННЫЙ.

Затем создайте еще один параметр для вашего идентификатора клиента, и вы можете проверить наличие идентификатора клиента следующим образом.

max([customer_id] = [param_customer_id]) 

Это возвращает истину, если есть хотя бы одна запись, где customer_id равна param_customer_id для выбранных размеров и диапазона дат.

Вы можете использовать этот же подход для определения вычисленного набора, например набора всех продуктов, которые были приобретены клиентом в указанном диапазоне дат, или набора всех пациентов, которые получили конкретную услугу. Просто используйте эту формулу на вкладке условия при определении набора.

+0

Я пересмотрел ваш ответ, потому что исходный расчет смешанных агрегатных и неагрегатных аргументов (так что это не сработало бы так, как написано), хотя концепция была в основном в правильном направлении. –

+0

Казалось бы, это работает, если это был один дискретный шестинедельный период что я выбираю, но я ищу что-то более динамичное, где для каждого случая он проверяет на шесть недель раньше этого конкретного наблюдения и видит, есть ли повторы идентификатора пациента, а затем для каждого последующего наблюдения он выполняет одна и та же. Я делал это ранее в R и загружал данные в виде плоского файла, но я хочу создать что-то, что делает это автоматически для использования с реализацией SQL. Я пытаюсь использовать SCRIPT_BOOL сейчас. –

+0

Это то, что у меня есть пока, но результат не то, что я пытаюсь потушить. 'код SCRIPT_BOOL (» требуется ('dplyr') требует ('lubridate') дату <- as.POSIXct (as.character (.arg2), формат = '% м /% г /% г') учетные записи <- .arg1 for (i in 1: length (accounts)) { новый <- учетные записи [которые (счета == счета [i])] право <- даты [i] + недели (6) left <- date [i] + days (3) новый <- новый [который (между (датами, слева, справа) == TRUE)] учетные записи [i] <- ifelse (длина (новее)> 0, ИСТИНА , FALSE)} accounts ", COUNT ([Идентификатор учетной записи]), COUNT ([Завершенная дата]))' –

 Смежные вопросы

  • Нет связанных вопросов^_^