Я имею дело с некоторыми конфиденциальными данными, поэтому меня беспокоит использование RPostgreSQL. У меня есть все данные, необходимые для загрузки в dataframes в R. Я пытаюсь выполнить запросы по данным с помощью функции sqldf()
в R. Эти запросы были написаны для Oracle SQL Developer несколько лет назад, поэтому мы пытаемся избежать переписывания скриптов полностью. Возможность повторного использования предварительно написанных сценариев SQL сэкономит нам огромное количество времени. Сценарий, кажется, срабатывает, когда мы нажимаем на функцию over()
SQL. Я знаю, что base sqldf не поддерживает функцию over()
. Я прочитал, что функция over()
работает с пакетом RPostgreSQL, но требует ли я, чтобы я отправлял свои фреймы данных во внешнюю базу данных? Из моего понимания RpostgreSQL вам нужно подключиться к PostgreSQL и создать новую базу данных. Мы не можем отправить эти данные во внешнюю систему хранения данных. Есть ли другой способ использовать функцию over()
, сохраняя локальные ящики данных на моем ПК?Функция OVER() в R с использованием sqldf без RPostgreSQL?
select program, importance_level, count(distinct subject_id)
from
(
select r.subject_id,
case
when rc_level is not null and rc_level <> 'NA'
then 'bad_guy'
when (rc_level is null or rc_level = 'NA') and
(substr(r.base_category, 2, 2) in ('5R', '8Q', '8P')
or r.process_name in ('On The Way'))
then 'run_away'
when (rc_level is null or rc_level = 'NA') and r.process_name =
'Fancy Order'
then 'repeater'
when (rc_level is null or rc_level = 'NA') and
(a.current_program_code in ('BOP', 'IAS', 'LIS', 'SIS')
or method_code in ('SIP', 'POB')
or substr(r.base_category, 2, 2) in ('9F', '7G'))
then 'NEWBIE'
else 'Other'
end
as importance_level,
case
when a.current_program_code in ('123', 'ABC', 'DEF', 'HIJ', 'KLM', 'NOP', 'QRS') then 'YAW'
when a.current_program_code in ('RE', 'FDS', 'QWE', 'WER', 'ERT','RTY','TYU') then 'PO'
when a.current_program_code in ('LEP') then 'MOM'
else a.current_program_code
end
as program
from FY16DATA r left join (select distinct * from (select subject_id, first_value(current_program_code) over (partition by subject_id order by start_date desc) as current_program_code, first_value(process_name) over (partition by subject_id order by start_date desc) as process_name, first_value(method_code) over (partition by subject_id order by start_date desc) as method_code, max(load_fy) over (partition by subject_id) as load_fy from FY16NAME)) a on r.subject_id = a.subject_id
where r.load_fy = '2016' and r.thing_status <> 'Over' and r.thing_status in ('Head','Hair','Face')
)
group by program, importance_level;
Я не разрешено загружать и устанавливать программное обеспечение на эту машину без длинный, вытянутый процесс утверждения. Я не думаю, что смогу загрузить локальную версию PostgreSQL. Возможно ли другой способ заставить RPostgreSQL загружаться из R-памяти? – MakoEyedSoldier
'RPostgreSQL' - это просто способ подключения R к установке postgreSQL. Это просто связь. Если у вас нет локальной установки postgreSQL, вам нечего подключать. – Gregor