3434# ' @export
3535# '
3636
37- library(ROracle )
38- library(DBI )
39- library(fredr )
40- library(tidyverse )
41- library(DescTools ) # For Winsorize
37+ # library(ROracle)
38+ # library(DBI)
39+ # library(fredr)
40+ # library(tidyverse)
41+ # library(DescTools) # For Winsorize
4242
4343get_commercial_data <- function (
4444 ora_id ,
@@ -62,6 +62,7 @@ get_commercial_data <- function(
6262 # source("//nefscdata/SOE_ESP_Data/ESPs/connect_socioeco_oracle.R")
6363 source(here :: here(' data-raw/scripts/connect_socioeco_oracle.R' ))
6464
65+
6566 # Using the name consistent with your loop
6667 nefscusers.connect.string <- paste0(
6768 " (DESCRIPTION=" ,
@@ -70,19 +71,19 @@ get_commercial_data <- function(
7071 )
7172
7273 # 3. Connect ONCE outside the loop
73- drv <- dbDriver(" Oracle" )
74- conn <- dbConnect(drv , ora_id , password = oraprod_pw , dbname = nefscusers.connect.string )
74+ drv <- DBI :: dbDriver(" Oracle" )
75+ conn <- DBI :: dbConnect(drv , ora_id , password = oraprod_pw , dbname = nefscusers.connect.string )
7576
7677 # #### 4. Price deflator
7778
78- gdp_deflator <- fredr(
79+ gdp_deflator <- fredr :: fredr (
7980 series_id = " GDPDEF" ,
8081 observation_start = as.Date(paste0(START.YEAR , " -01-01" )),
8182 observation_end = as.Date(paste0(END.YEAR , " -12-31" )),
8283 frequency = " a" # Annual
83- ) % > %
84- mutate(YEAR = as.numeric(format(date , " %Y" ))) % > %
85- select(YEAR , GDPDEF = value )
84+ ) | >
85+ dplyr :: mutate(YEAR = as.numeric(format(date , " %Y" ))) | >
86+ dplyr :: select(YEAR , GDPDEF = value )
8687
8788
8889 # 1. Build the query string using your R variables
@@ -97,22 +98,22 @@ get_commercial_data <- function(
9798 )
9899
99100 # 2. Execute the query
100- landings_data <- dbGetQuery(conn , query_landings )
101+ landings_data <- DBI :: dbGetQuery(conn , query_landings )
101102
102103 # 3. View the result
103104 print(head(landings_data ))
104105
105106
106107 # Standardize the data frame to match the required indicator format
107- landings_final <- landings_data % > %
108- mutate(
108+ landings_final <- landings_data | >
109+ dplyr :: mutate(
109110 CATEGORY = " Commercial" ,
110111 INDICATOR_NAME = paste0(" Commercial_" , spp_name , " _Landings_LBS" ),
111112 INDICATOR_TYPE = " Socioeconomic"
112- ) % > %
113+ ) | >
113114 # Rename the sum column to DATA_VALUE (Equivalent to Stata rename)
114- rename(DATA_VALUE = !! paste0(" TOTAL_" , spp_name )) % > %
115- select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
115+ dplyr :: rename(DATA_VALUE = !! paste0(" TOTAL_" , spp_name )) | >
116+ dplyr :: select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
116117
117118 #
118119
@@ -130,20 +131,20 @@ get_commercial_data <- function(
130131 )
131132
132133 # 2. Execute the query
133- Nvessels_data <- dbGetQuery(conn , query_Nvessels )
134+ Nvessels_data <- DBI :: dbGetQuery(conn , query_Nvessels )
134135
135136 # 3. Format to match Stata indicators
136- Nvessels_final <- Nvessels_data % > %
137- mutate(
137+ Nvessels_final <- Nvessels_data | >
138+ dplyr :: mutate(
138139 CATEGORY = " Commercial" ,
139140 # This creates the long name you want in the final table
140141 INDICATOR_NAME = paste0(" N_Commercial_Vessels_Landing_" , spp_name ),
141142 INDICATOR_TYPE = " Socioeconomic"
142- ) % > %
143+ ) | >
143144 # Now this rename will work because the SQL alias matches 'N_VESSELS'
144145 # Note: Oracle often returns names in UPPERCASE, so we check for both.
145- rename(DATA_VALUE = any_of(c(" N_VESSELS" , " N_vessels" ))) % > %
146- select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
146+ dplyr :: rename(DATA_VALUE = any_of(c(" N_VESSELS" , " N_vessels" ))) | >
147+ dplyr :: select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
147148
148149 # 4. View the result
149150 print(head(Nvessels_final ))
@@ -158,42 +159,42 @@ get_commercial_data <- function(
158159 " AND YEAR BETWEEN " , START.YEAR , " AND " , END.YEAR
159160 )
160161
161- price_raw <- dbGetQuery(conn , query_price )
162+ price_raw <- DBI :: dbGetQuery(conn , query_price )
162163
163164 # --- 2. Calculate Average Annual Prices (Manual Winsorize) ---
164- price_annual <- price_raw % > %
165- mutate(price_lb = SPPVALUE / SPPLNDLB ) % > %
165+ price_annual <- price_raw | >
166+ dplyr :: mutate(price_lb = SPPVALUE / SPPLNDLB ) | >
166167 # Remove Infinity or NA if pounds were 0
167- filter(is.finite(price_lb )) % > %
168- group_by(YEAR ) % > %
169- mutate(
168+ dplyr :: filter(is.finite(price_lb )) | >
169+ dplyr :: group_by(YEAR ) | >
170+ dplyr :: mutate(
170171 # Calculate the 1st and 99th percentiles for this year
171- p01 = quantile(price_lb , 0.01 , na.rm = TRUE ),
172- p99 = quantile(price_lb , 0.99 , na.rm = TRUE ),
172+ p01 = stats :: quantile(price_lb , 0.01 , na.rm = TRUE ),
173+ p99 = stats :: quantile(price_lb , 0.99 , na.rm = TRUE ),
173174 # "Squish" values outside that range (This is Winsorizing!)
174- price_lb_w = case_when(
175+ price_lb_w = dplyr :: case_when(
175176 price_lb < p01 ~ p01 ,
176177 price_lb > p99 ~ p99 ,
177178 TRUE ~ price_lb
178179 )
179- ) % > %
180- summarise(AVG_NOMINAL_PRICE = mean(price_lb_w , na.rm = TRUE )) % > %
181- ungroup()
180+ ) | >
181+ dplyr :: summarise(AVG_NOMINAL_PRICE = mean(price_lb_w , na.rm = TRUE )) | >
182+ dplyr :: ungroup()
182183
183184 # --- 3. Adjust for Inflation (Deflate) ---
184185 # (Keep this the same as before)
185186
186- base_index_val <- gdp_deflator $ GDPDEF [gdp_deflator $ YEAR == deflate_yr ]
187+ base_index_val <- DBI :: gdp_deflator $ GDPDEF [gdp_deflator $ YEAR == deflate_yr ]
187188
188- price_final <- price_annual % > %
189- left_join(gdp_deflator , by = " YEAR" ) % > %
190- mutate(
189+ price_final <- price_annual | >
190+ dplyr :: left_join(gdp_deflator , by = " YEAR" ) | >
191+ dplyr :: mutate(
191192 DATA_VALUE = (AVG_NOMINAL_PRICE / GDPDEF ) * base_index_val ,
192193 CATEGORY = " Commercial" ,
193194 INDICATOR_NAME = paste0(" AVGPRICE_" , spp_name , " _" , deflate_yr , " _DOLlb" ),
194195 INDICATOR_TYPE = " Socioeconomic"
195- ) % > %
196- select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
196+ ) | >
197+ dplyr :: select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
197198
198199 # --- 4. Cleanup ---
199200
@@ -216,43 +217,43 @@ get_commercial_data <- function(
216217 " AND YEAR BETWEEN " , START.YEAR , " AND " , END.YEAR ,
217218 " GROUP BY YEAR ORDER BY YEAR"
218219 )
219- revs_raw <- dbGetQuery(conn , query_revs )
220+ revs_raw <- DBI :: dbGetQuery(conn , query_revs )
220221
221222 # 2. Deflate and Format
222- revs_final <- revs_raw % > %
223- left_join(gdp_deflator , by = " YEAR" ) % > %
224- mutate(
223+ revs_final <- revs_raw | >
224+ dplyr :: left_join(gdp_deflator , by = " YEAR" ) | >
225+ dplyr :: mutate(
225226 DATA_VALUE = (TOTAL_REV / GDPDEF ) * base_index_val ,
226227 CATEGORY = " Commercial" ,
227228 INDICATOR_NAME = paste0(" TOTALANNUALREV_" , spp_name , " _" , deflate_yr , " Dols" ),
228229 INDICATOR_TYPE = " Socioeconomic"
229- ) % > %
230- select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
230+ ) | >
231+ dplyr :: select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
231232
232233 # ################# Fuel Prices ##################
233234
234235 # 1. Pull Diesel Price from FRED with Year Range
235- fuel_raw <- fredr(
236+ fuel_raw <- fredr :: fredr (
236237 series_id = " DDFUELNYH" ,
237238 observation_start = as.Date(paste0(START.YEAR , " -01-01" )),
238239 observation_end = as.Date(paste0(END.YEAR , " -12-31" )),
239240 frequency = " a"
240- ) % > %
241- mutate(YEAR = as.numeric(format(date , " %Y" ))) % > %
241+ ) | >
242+ dplyr :: mutate(YEAR = as.numeric(format(date , " %Y" ))) | >
242243 # Stata 'drop if missing(DDFUELNYH)' equivalent:
243- filter(! is.na(value )) % > %
244- select(YEAR , DDFUELNYH = value )
244+ dplyr :: filter(! is.na(value )) | >
245+ dplyr :: select(YEAR , DDFUELNYH = value )
245246
246247 # 2. Deflate and Format
247- fuel_final <- fuel_raw % > %
248- left_join(gdp_deflator , by = " YEAR" ) % > %
249- mutate(
248+ fuel_final <- fuel_raw | >
249+ dplyr :: left_join(gdp_deflator , by = " YEAR" ) | >
250+ dplyr :: mutate(
250251 DATA_VALUE = (DDFUELNYH / GDPDEF ) * base_index_val ,
251252 CATEGORY = " Commercial" ,
252253 INDICATOR_NAME = paste0(" AVGANNUAL_DIESEL_PRICE" , deflate_yr , " dols" ),
253254 INDICATOR_TYPE = " Socioeconomic"
254- ) % > %
255- select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
255+ ) | >
256+ dplyr :: select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
256257
257258 # ########### Average Revenue Per Vessel ##################
258259
@@ -264,23 +265,23 @@ get_commercial_data <- function(
264265 " AND YEAR BETWEEN " , START.YEAR , " AND " , END.YEAR ,
265266 " GROUP BY YEAR, PERMIT"
266267 )
267- ves_rev_raw <- dbGetQuery(conn , query_ves_rev )
268+ ves_rev_raw <- DBI :: dbGetQuery(conn , query_ves_rev )
268269
269270 # 2. Calculate Mean per Year and Deflate
270- av_ves_rev_final <- ves_rev_raw % > %
271- group_by(YEAR ) % > %
272- summarise(AVG_VESSEL_REV = mean(VESSEL_TOTAL_REV , na.rm = TRUE )) % > %
273- left_join(gdp_deflator , by = " YEAR" ) % > %
274- mutate(
271+ av_ves_rev_final <- ves_rev_raw | >
272+ dplyr :: group_by(YEAR ) | >
273+ dplyr :: summarise(AVG_VESSEL_REV = mean(VESSEL_TOTAL_REV , na.rm = TRUE )) | >
274+ dplyr :: left_join(gdp_deflator , by = " YEAR" ) | >
275+ dplyr :: mutate(
275276 DATA_VALUE = (AVG_VESSEL_REV / GDPDEF ) * base_index_val ,
276277 CATEGORY = " Commercial" ,
277278 INDICATOR_NAME = paste0(" AVGVESREVperYr_" , spp_name , " _" , deflate_yr , " _DOLlb" ),
278279 INDICATOR_TYPE = " Socioeconomic"
279- ) % > %
280- select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
280+ ) | >
281+ dplyr :: select(YEAR , DATA_VALUE , CATEGORY , INDICATOR_NAME , INDICATOR_TYPE )
281282
282283 # #disconnect from oracle
283- dbDisconnect(conn )
284+ DBI :: dbDisconnect(conn )
284285 # ################# MASTER APPEND ##################
285286
286287 # 1. Create a list of all your final data frames
@@ -296,12 +297,12 @@ get_commercial_data <- function(
296297
297298 # 2. Use bind_rows to stack them into one long file
298299 # This is identical to running 'append' multiple times in Stata
299- final_master_file <- bind_rows(indicator_list )
300+ final_master_file <- dplyr :: bind_rows(indicator_list )
300301
301302 # 3. Final Quality Check (Filtering by your start/end years)
302- final_master_file <- final_master_file % > %
303- filter(YEAR > = START.YEAR & YEAR < = END.YEAR ) % > %
304- arrange(INDICATOR_NAME , YEAR )
303+ final_master_file <- final_master_file | >
304+ dplyr :: filter(YEAR > = START.YEAR & YEAR < = END.YEAR ) | >
305+ dplyr :: arrange(INDICATOR_NAME , YEAR )
305306
306307 # 4. Save the file (Equivalent to Stata's 'save ..., replace')
307308 # Use file.path to make sure the folder and filename are joined correctly
0 commit comments