Цикл R для разрыва доступа к данным Wrds TAQ

Я использую .sh-файл (оболочку) для активации через PuTTY моего Rscript. Rscript просматривает торговые таблицы за 10 лет TAQ в миллисекундах для 20 символов. Если я запускаю цикл для этих 20 символов только на очень короткое время (например, 1 неделю), я получаю все необходимые данные. Точно так же, если я запускаю цикл для данных за 10 лет, но только для 2 символов, я также получаю данные. Однако проблема в том, что если я запускаю цикл в течение 10 лет (2010-2020) для всех двадцати символов, цикл прерывается, и я получаю сообщение «/usr/local/sas/grid/R-3.6.2-linux/lib64 / R / bin / BATCH: строка 60: 28764 Убита ${R_HOME} / bin / R -f ${in} ${opts} ${R_BATCH_OPTIONS}> ${out} 2>&1". Что я делаю неправильно?

      library(RPostgres)

# Connect to WRDS
wrds <- dbConnect(Postgres(),
                  host = 'wrds-pgdata.wharton.upenn.edu',
                  port = 9737,
                  dbname = 'wrds',
                  sslmode = 'require',
                  user = 'XXX',
                  password = 'XXX')

# Get list of all available dates
res <- dbSendQuery(wrds, "select distinct table_name
                   from information_schema.columns
                   where table_schema='taqmsec'
                   order by table_name")

df_dates <- dbFetch(res, n = -1)
dbClearResult(res)

# Df_dates contains also quotes table names and indices
dates_trades <-
  df_dates %>%
  filter(grepl("ctm",table_name), !grepl("ix_ctm",table_name)) %>%
  mutate(table_name = substr(table_name, 5, 12)) %>%
  unlist()

# Store all table names relevant analysis
dd <- dates_trades[1591:4366]

# All tickers in WRDS-SQL format
tickers <- "('INTC', 'WMT','PG','MSFT','BLX','KO',
              'XOM','GILD','NKE','CAT','JPM',
              'VTR','AXP','IBM','JNJ', 'PFE',
              'DIS','BA')"

# Fetch data from Wrds Via SQL loop
list <- lapply(dd, function(iter){
  res <-
    dbSendQuery(wrds,
                paste0(" select concat(date, ' ',time_m) as DT,",
                       " ex, sym_root, price, size, tr_corr, tr_scond",
                       " from taqmsec.ctm_", iter,
                       " where (ex = 'N' or ex = 'T' or ex = 'Q' or ex = 'A')",
                       " and sym_root IN ", tickers,
                       " and price != 0 and tr_corr = '00'",
                       " and time_m between '09:30:00.00' and '16:00:00.00'"))
  
  dtaq <- dbFetch(res, n = -1)
  dbClearResult(res)
  dtaq
})

0 ответов

Другие вопросы по тегам