Загрузка только транспортных компаний из WRDS

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

Я пытаюсь загрузить данные только для транспортных компаний (код NSDINX 6), но я получаю сообщения об ошибках. Этого не произошло при выборе индекса NASDAQ (HEXCD = 3)

res <- dbSendQuery(wrds, "select CUSIP, DATE, PERMNO, PERMCO, PRC, RET, RETX, VOL, HEXCD, NSDINX from CRSP.DSF WHERE DATE >= '2000-03-01' AND DATE < '2018-04-01' AND NSDINX = 6 AND HEXCD = 3")
Error in result_create(conn@ptr, statement) : 
  Failed to prepare query: ERROR:  column "nsdinx" does not exist
LINE 1: ...IP, DATE, PERMNO, PERMCO, PRC, RET, RETX, VOL, HEXCD, NSDINX

1 ответ

Проблема в том, чтоnsdinxнаходится на другом столе (crsp.dse), поэтому необходимо объединить.

      library(DBI)
library(dplyr, warn.conflicts = FALSE)

pg <- dbConnect(RPostgres::Postgres())

dbExecute(pg, "SET search_path TO crsp")
#> [1] 0

dsf <- tbl(pg, "dsf")
dse <- tbl(pg, "dse")
dsi <- tbl(pg, "dsi")
nasdin <- 
    dse |>
    filter(!is.na(nsdinx)) |>
    filter(nsdinx == 6) |>
    select(permno, date, event, nsdinx, trtsendt) |>
    rename(trtsdt = date)

dsi |>
    select(date) |>
    inner_join(nasdin, join_by(date >= trtsdt, date <= trtsendt)) |>
    inner_join(dsf) |>
    select(cusip, date, permno, permco, prc, ret, retx, vol, hexcd, nsdinx) 
#> Joining with `by = join_by(date, permno)`
#> # Source:   SQL [?? x 10]
#> # Database: postgres  [igow@/tmp:5432/igow]
#>    cusip    date       permno permco   prc      ret     retx    vol hexcd nsdinx
#>    <chr>    <date>      <int>  <int> <dbl>    <dbl>    <dbl> <int6> <int> <int6>
#>  1 69348J10 1986-03-03  10038   7986 -7    -0.00885 -0.00885  23400     3      6
#>  2 69348J10 1986-03-04  10038   7986 -6.88 -0.0179  -0.0179   83550     3      6
#>  3 69348J10 1986-03-05  10038   7986 -6.81 -0.00909 -0.00909  33875     3      6
#>  4 69348J10 1986-03-06  10038   7986 -6.94  0.0183   0.0183   33500     3      6
#>  5 69348J10 1986-03-07  10038   7986 -6.94  0        0        41735     3      6
#>  6 69348J10 1986-03-10  10038   7986 -7.62  0.0991   0.0991  143024     3      6
#>  7 69348J10 1986-03-11  10038   7986 -8.5   0.115    0.115   159917     3      6
#>  8 69348J10 1986-03-12  10038   7986 -8.75  0.0294   0.0294  156528     3      6
#>  9 69348J10 1986-03-13  10038   7986 -9.31  0.0643   0.0643  240000     3      6
#> 10 69348J10 1986-03-14  10038   7986 -9.69  0.0403   0.0403  204480     3      6
#> # ℹ more rows

Создано 15 мая 2023 г. с использованием reprex v2.0.2.

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