diff --git a/R_to_SQL_database/Crop_cifos_DataPreparation_DB.R b/R_to_SQL_database/Crop_cifos_DataPreparation_DB.R index a83e2c03a9f67dbf09c26ef1a949c048c264cb5c..ba5f5cbcfd1cfb9ddfda6d0240ad81ad198cfd29 100644 --- a/R_to_SQL_database/Crop_cifos_DataPreparation_DB.R +++ b/R_to_SQL_database/Crop_cifos_DataPreparation_DB.R @@ -6,7 +6,8 @@ # library("easypackages") # Loading packages easypackages::packages("odbc","DBI", "RSQLite", "dbplyr", "readxl", "fuzzyjoin", - "sqldf", "downloader", "tidyverse", "janitor", "FAOSTAT") + "sqldf", "downloader", "tidyverse", "janitor", "FAOSTAT", + "validate") # https://www.youtube.com/watch?v=CydajdNRJOU ----------------------------- @@ -237,18 +238,17 @@ dat_crop_final = read_csv("Input_data/dat_crop_with_grass_final.csv") # crop = as_tibble(tbl(con, "crop")) dat_cifos <- read_excel("Input_data/Copy of European_CiFoS_model_data_ANITANov21.xlsx", sheet = "Animal_Nutr") - # Processing sheet -------------------------------------------------------- Processing_sheet = read_csv("Input_data/Copy of European_CiFoS_model_data_ANITANov21.csv") dat_crop_final = read_csv("Input_data/dat_crop_with_grass_final.csv") %>% # Adding the grass to the old crop name columns so it will not result in NA later. dplyr::mutate(old_cifos_crop = case_when(is.na(old_cifos_crop) ~ crop_cifos, TRUE ~ old_cifos_crop)) - + # Fuzzy join of processing sheet and the crop map # crop_map_cifos_procraw = dat_proc = Processing_sheet %>% - dplyr::select(c(1:5)) %>% + dplyr::select(c(1:5)) %>% stringdist_right_join(drop_na(dat_crop_final, old_cifos_crop), by = c("ProRaw" = "old_cifos_crop"), max_dist = 2) %>% #This results in the 59 crops (incl grass) - Good! @@ -480,6 +480,7 @@ print(new_procin, n=33) # 33 other_tubers Yautia Yautia Yautia 1 Vegetables, Other +# Processing hardcode ----------------------------------------------------- proc_new = tibble("crop_cifos" = NA, "proc_raw" = NA, "proc_in" = NA, "proc_out" = NA, "value" = NA, "dietary_products" = NA) %>% # Cocoa -- Source: from Technical Conversion Factors for Agricultural Commodities (http://countrystat.org/resources/documents/tcf.pdf) @@ -505,12 +506,6 @@ proc_new = tibble("crop_cifos" = NA, "proc_raw" = NA, "proc_in" = NA, "proc_out" add_row(crop_cifos = "cassava" , proc_raw = "cassava" , proc_in = "cassava_dryin", proc_out = "cassava_dry", value = 0.35, dietary_products = "Cassava and products") %>% add_row(crop_cifos = "cassava" , proc_raw = "cassava" , proc_in = "cassava_starchin", proc_out = "cassava_starch", value = 0.25, dietary_products = "Cassava and products") %>% - # cow peas -- Source: from Technical Conversion Factors for Agricultural Commodities (http://countrystat.org/resources/documents/tcf.pdf); adjusted commodity tree; fractions from "pulses" - # Levels: all pulses only one level - add_row(crop_cifos = "cow_peas_dry" , proc_raw = "cow_peas_dry" , proc_in = "cow_peas_vegetables", proc_out = "cow_peas_vegetables", value = 0.95, dietary_products = "Pulses, Other and products") %>% #5% water is assumed to be lost - add_row(crop_cifos = "cow_peas_dry" , proc_raw = "cow_peas_dry" , proc_in = "cow_peas_processed", proc_out = "cow_peas_flour", value = 0.72, dietary_products = "Pulses, Other and products") %>% - add_row(crop_cifos = "cow_peas_dry" , proc_raw = "cow_peas_dry" , proc_in = "cow_peas_processed", proc_out = "cow_peas_bran", value = 0.23, dietary_products = "Pulses, Other and products") %>% - # Pearl millet -- Source: from Technical Conversion Factors for Agricultural Commodities (http://countrystat.org/resources/documents/tcf.pdf); adjusted commodity tree; fractions from "cereals/millet" # levels: only one level add_row(crop_cifos = "pearl_millet" , proc_raw = "pearl_millet" , proc_in = "pearl_millet_flourin", proc_out = "pearl_millet_flour", value = 0.86, dietary_products = "Millet and products") %>% @@ -674,9 +669,9 @@ proc_new = tibble("crop_cifos" = NA, "proc_raw" = NA, "proc_in" = NA, "proc_out" ## alfalfafor # grass_pasture - Source: Source: https://www.feedipedia.org/node/275 - add_row(crop_cifos = "alfalfafor" , proc_raw = "alfalfafor" , proc_in = "alfalfafor_dry", proc_out = "grass_pasture_hay", value = 0.894, dietary_products = "Forage and silage, legumes") %>% #Alfalfa, hay, (feedepedia) + add_row(crop_cifos = "alfalfafor" , proc_raw = "alfalfafor" , proc_in = "alfalfafor_dry", proc_out = "alfalfafor_hay", value = 0.894, dietary_products = "Forage and silage, legumes") %>% #Alfalfa, hay, (feedepedia) add_row(crop_cifos = "alfalfafor" , proc_raw = "alfalfafor" , proc_in = "alfalfafor_fresh", proc_out = "alfalfafor_fresh", value = 0.199, dietary_products = "Forage and silage, legumes") %>% #Alfalfa fresh (feedepedia) - add_row(crop_cifos = "alfalfafor" , proc_raw = "alfalfafor" , proc_in = "alfalfafor_silage", proc_out = "grass_pasture_silage", value = 0.308, dietary_products = "Forage and silage, legumes") %>% #Alfalfa, silage (feedepedia) + add_row(crop_cifos = "alfalfafor" , proc_raw = "alfalfafor" , proc_in = "alfalfafor_silage", proc_out = "alfalfafor_silage", value = 0.308, dietary_products = "Forage and silage, legumes") %>% #Alfalfa, silage (feedepedia) # cloverfor - Source: https://www.feedipedia.org/node/246 add_row(crop_cifos = "cloverfor" , proc_raw = "cloverfor" , proc_in = "cloverfor_dry", proc_out = "cloverfor_hay", value = 0.894, dietary_products = "Roughage") %>% # Alfalfa, hay, (feedepedia) @@ -686,10 +681,9 @@ proc_new = tibble("crop_cifos" = NA, "proc_raw" = NA, "proc_in" = NA, "proc_out" # ryefor - Source: https://www.feedipedia.org/node/385 # According to FAO this might relate to fast growing grass which is covered by grass already -- https://www.fao.org/es/faodef/fdef11e.htm -- RYE GRASS FOR FORAGE Italian ryegrass (Lolium multiflorum); English, perennial ryegrass (L. perenne) (feedepedia) add_row(crop_cifos = "ryefor" , proc_raw = "ryefor" , proc_in = "ryefor_freshin", proc_out = "ryefor_fresh", value = 0.16, dietary_products = "Forage and silage, legumes") %>% # Reference: Feedipedia: Rye, aerial part, fresh (feedepedia) - add_row(crop_cifos = "ryefor" , proc_raw = "ryefor" , proc_in = "ryefor_dryin", proc_out = "ryefor_dry", value = 0.92, dietary_products = "Forage and silage, legumes") %>% # Reference: Feedipedia: Rye straw (feedepedia) + add_row(crop_cifos = "ryefor" , proc_raw = "ryefor" , proc_in = "ryefor_dryin", proc_out = "ryefor_hay", value = 0.92, dietary_products = "Forage and silage, legumes") %>% # Reference: Feedipedia: Rye straw (feedepedia) add_row(crop_cifos = "ryefor" , proc_raw = "ryefor" , proc_in = "ryefor_silage", proc_out = "ryefor_silage", value = 0.277, dietary_products = "Forage and silage, legumes") %>% # #Red clover (Trifolium pratense), silage (feedepedia) - # fornesfor add_row(crop_cifos = "fornesfor" , proc_raw = "fornesfor_feed" , proc_in = "fornesfor_feedin", proc_out = "fornesfor_plant", value = 0.65, dietary_products = "Forage products") %>% #comes from cabbage @@ -790,8 +784,8 @@ proc_new = tibble("crop_cifos" = NA, "proc_raw" = NA, "proc_in" = NA, "proc_out" # sunflower - tcf fao add_row(crop_cifos = "sunflower" , proc_raw = "sunflower_seed" , proc_in = "sunflower_seed", proc_out = "sunflower_oil", value = 0.41, dietary_products = "Soyabean Oil") %>% - add_row(crop_cifos = "sunflower" , proc_raw = "sunflower_seed" , proc_in = "soyabean_for_oil", proc_out = "sunflower_cake", value = 0.47, dietary_products = "Soyabeans") %>% - add_row(crop_cifos = "sunflower" , proc_raw = "sunflower_seed" , proc_in = "soyabean_for_oil", proc_out = "sunflower_hulls", value = 0.07, dietary_products = "Soyabeans") %>% #ref from ollie (old proccessing sheet) + add_row(crop_cifos = "sunflower" , proc_raw = "sunflower_seed" , proc_in = "sunflower_for_oil", proc_out = "sunflower_cake", value = 0.47, dietary_products = "Soyabeans") %>% + add_row(crop_cifos = "sunflower" , proc_raw = "sunflower_seed" , proc_in = "sunflower_for_oil", proc_out = "sunflower_hulls", value = 0.07, dietary_products = "Soyabeans") %>% #ref from ollie (old proccessing sheet) # Paddy Rice - tcf fao # husked rice @@ -848,7 +842,11 @@ dat_proc_new = dat_complete %>% "Sugar (Raw Equivalent)", dietary_products)) %>% dplyr::mutate(across(c("crop_cifos":"proc_out"), tolower)) %>% dplyr::mutate(proc_raw = gsub("\\,", "", proc_raw), - proc_raw = gsub(" ", "_", proc_raw)) #all lower cases - less confusion + proc_raw = gsub(" ", "_", proc_raw), + proc_raw = case_when( + proc_raw %in% (dat_proc_new %>% pull(proc_out)) & + proc_raw != proc_out~ proc_raw, + TRUE ~ crop_cifos)) dat_proc_new %>% write_csv("Input_data/dat_proc_new.csv") # dat = read_csv("Input_data/dat_proc_new.csv") @@ -869,31 +867,15 @@ dat_proc_asf = dietary_products= case_when(proc_out == "Butter" ~ "Butter, Ghee", TRUE ~ dietary_products), dietary_products= case_when(dietary_products == "Fish (Calculated CiFoS)" ~ "Fish, Seafood", - TRUE ~ dietary_products)) + TRUE ~ dietary_products), + proc_out = case_when(proc_out == "Butter_Milk" ~ "Butter_milk", + TRUE ~ proc_out)) #this was written with a uppercase here and a lower case in the food losses sheet + Processing_sheet_final = bind_rows(dat_proc_new %>% dplyr::select(-crop_cifos),dat_proc_asf) write_csv(Processing_sheet_final, "Input_data/processing_sheet.csv") -# Tagging utilisation of procouts (Hannah: should not be used -- we should just use all the procouts) ------------------------------------------- -# Manual utilization tagging of procouts in excel -# proc_util_tag = read_csv("Input_data/dat_proc_new_tag.csv") -# -# # Human nutrition -# food_proc = proc_util_tag %>% filter( -# grepl("food", cat)) -# -# # Animal nutrition -# feed_proc = proc_util_tag %>% filter( -# grepl("feed", cat) | -# grepl("grass", cat)) -# -# # Fertilzation -# fert_proc = proc_util_tag %>% filter( -# grepl("fertilizer", cat)) - - -# Human nutrition - backup ----------------------------------------------- # Human nutrition sheet --------------------------------------------------- # Human nutrtion sheet @@ -923,6 +905,8 @@ dat_procout_demi = read_csv("Input_data/demi_human_food.csv") %>% dat_procout_to_find_demi = dat_procout_all %>% dplyr::filter(is.na(original_id)) %>%# this needs to be checked for in the old human nutrition sheet write_csv("Input_data/humNutr_demitofind.csv") + +# Manual Mapping Human Nutrition ------------------------------------------ # Careful -- Manual mapping -- Which procout is in the old human nutrition sheet that was not detected by the join above. Also mapping for non-human food procouts dat_map_old_new_procout = read_csv("Input_data/map_old_new_procout_2.csv") %>% @@ -997,207 +981,10 @@ food_asf = dat_humnutr %>% janitor::row_to_names(2) %>% janitor::clean_names() % # Combining all dfs hum_nutr_all = bind_rows(food_old_match, food_psf_new, food_asf) + # check = full_join(hum_nutr_all, proc_new, by = c("product"="proc_out")) write_csv(hum_nutr_all, "Input_data/hum_nutr_all.csv") -# -# -# # Human nutrition sheet --------------------------------------------------- -# # Human nutrtion sheet -# dat_humnutr = read_excel("Input_data/Copy of European_CiFoS_model_data_ANITANov21.xlsx", sheet = "Human_Nutr") -# -# # Nutritional dataset downloaded from https://www.rivm.nl/documenten/nevo-online-versie-2019-60 -# # downloader::download("https://www.rivm.nl/sites/default/files/2019-11/NEVO-online%20versie-2019-60.zip", -# # dest="Input_data/NEVO-online versie-2019-60.zip", mode="wb") -# # unzip("Input_data/NEVO-online versie-2019-60.zip") -# # # key for components can be downloaded here: https://www.rivm.nl/sites/default/files/2019-11/Components%20in%20NEVO-online%202019_0.pdf -# # dat_nutr_rivm = read_excel("Input_data/NEVO-online versie-2019-60/nevo_online_2019.xlsx", -# # sheet = "NevoOnline2019 Nutrientgehaltes") -# # -# # # Checking if the variables in the human nutrition sheet are in the RIVM data sheet -# # col_rivm = colnames(dat_nutr_rivm) -# # dat_cols = dat_humnutr %>% janitor::row_to_names(2) -# # col_cifos = colnames(dat_cols) %>% as_tibble() %>% pull() -# # # join_dat = hum_nutr_cols %>% drop_na() %>% distinct() %>% -# # # stringdist_left_join(col_rivm, -# # # by = c("value" = "value"), -# # # max_dist = 3) # all the cifos human nutrition sheet are in the rivm data sheet! -# # -# # dat_map_nevo_cifos = dat_nutr_rivm %>% dplyr::select(#identifiers -# # Productgroepcode, -# # Productcode, -# # Product_description, -# # Product_synoniemen, -# # -# # #Water and Energy -# # WATER_g, -# # ENERCC_kcal, -# # # Macro nutritnes -# # PROT_g, -# # CHO_g, -# # FIBT_g, -# # FAT_g, -# # # Fatty acids -# # F18_2CN6_g, F18_3CN3_g,F20_5CN3_g,F22_6CN3_g, -# # # Cholesterol -# # CHORL_mg, -# # # minerals -# # NA_mg,K_mg,CA_mg,P_mg,MG_mg,FE_mg,CU_mg,SE_mug,ZN_mg,ID_mug, -# # #Vitammins -# # RETOL_mug, -# # THIA_mg,RIBF_mg, NIA_mg,VITB6_mg,FOL_mug,VITB12_mug, -# # VITC_mg, -# # VITD_mug, -# # VITE_mg, -# # VITK_mug, -# # # Nitrogen -# # NT_g) %>% #selecting the variables that match the cifos -# # dplyr::mutate(Weight = "100") %>% #creating missing columns from cifos hum nutr sheet -# # dplyr::rename(Product = Product_description, -# # Energy = ENERCC_kcal, -# # Protein = PROT_g, -# # N = NT_g, -# # Carbohydrates=CHO_g, -# # Water = WATER_g, -# # Fiber = FIBT_g, -# # Fat_total = FAT_g, -# # LA = F18_2CN6_g, -# # ALA = F18_3CN3_g, -# # EPA = F20_5CN3_g, -# # DHA = F22_6CN3_g, -# # Cholestrol = CHORL_mg, -# # Na = NA_mg, -# # K = K_mg, -# # Ca = CA_mg, -# # P = P_mg, -# # Mg = MG_mg, -# # Fe = FE_mg, -# # Cu = CU_mg, -# # Se = SE_mug, -# # Zn = ZN_mg, -# # I = ID_mug, -# # A = RETOL_mug, -# # B1 = THIA_mg, -# # B2 = RIBF_mg, -# # B3 = NIA_mg, -# # B6 = VITB6_mg, -# # B9 = FOL_mug, -# # B12 = VITB12_mug, -# # C = VITC_mg, -# # D = VITD_mug, -# # E = VITE_mg, -# # VitK = VITK_mug, -# # N = NT_g) %>% #Renaming the variables so they match the cifos -# # dplyr::relocate(Water, .before = Energy) -# # -# # write_csv(dat_map_nevo_cifos, "Input_data/dat_map_nevo_cifos.csv") -# # -# # # Different names in proc_out and the Product -# # dat_map_nevo_cifos %>% dplyr::filter(Productcode == 220) -# # -# # # Adding missing products from nutritional sheets -# # vec_dist_new_crops = new_dietprods_dist %>% pull(crop_cifos) -# # # [1] "grass_pasture" "ryefor" "seed_cotton" "tobacco" "cassava" -# # # "cocoa_beans" "coconuts" "pearl_millet" "oil_palm_fruit" "plantains" "sorghum" -# # # [12] "sugar_cane" "sweet_potatoes" "tea" -# # -# # test = dat_map_nevo_cifos %>% -# # filter( -# # grepl("Cassava raw", Product) | -# # grepl("rye", Product) | -# # grepl("mill", Product) | #not -# # grepl("palm", Product) | -# # grepl("plantain", Product) | -# # grepl("chocol", Product) | -# # grepl("coconut", Product) | -# # grepl("sugar", Product) | -# # grepl("potato sweet raw", Product) | -# # grepl("tea", Product) | -# # grepl("sorg", Product)| -# # grepl("Yam raw", Product) -# # ) -# # -# # dat_map_nevo_cifos %>% -# # filter( -# # grepl("", Product_synoniemen )) -# # -# # -# # dat_map_nevo_cifos %>% -# # filter(Product %in% c("Cassava raw", -# # "Yam raw", -# # "Potato sweet raw", -# # "Ice tea light", -# # "Milk chocolate-flavoured full fat", -# # "Oil palm", "Oil palmkernel", # we need the processing fractions -# # "Oil coconut", #only oil in nevo -# # "Icing (sugar)" -# # )) -# # -# # -# # -# # # Nutrition sheet -# # # Removing the animal family from sheet -# # -# # # Distinct plant family groups -# # dist_family_plnts = dat_humnutr %>% janitor::row_to_names(2) %>% janitor::clean_names() %>% -# # dplyr::filter(!family %in% c("Dairy", "Fish", "Meat", "Egg")) %>% distinct_at(vars(family)) -# # -# # -# # write_csv(dist_family_plnts, "Input_data/dist_family_plnts.csv") -# -# -# # Checking what is missing in the humann nutrition shheet so that we can add what is missing from the RIVM sheet -# dat_humnutr_cifos = dat_humnutr %>% janitor::row_to_names(2) %>% janitor::clean_names() %>% -# dplyr::filter(!family %in% c("Dairy", "Fish", "Meat", "Egg")) %>% mutate(product_lc = tolower(product)) -# # write_csv(dat_humnutr_cifos, "Input_data/dat_humnutr_cifos.csv") -# -# # Careful -- Manual mapping -- Which procout is in the old human nutrition sheet that was not detected by the join above. Also mapping for non-human food procouts -# dat_map_old_new_procout = -# read_csv("Input_data/map_old_new_procout_2.csv") %>% -# dplyr::filter(food_cat == "food" & is.na(old_procout)) -# -# # These prcouts are neither in the old processing sheet nor in demis sheet -# proc_out_missing = -# dat_proc_new %>% dplyr::select(proc_out, dietary_products) %>% -# dplyr::left_join(., dat_humnutr_cifos %>% select(product_lc, product) , by = c("proc_out" ="product_lc")) %>% -# dplyr::left_join(.,dat_map_old_new_procout,by = c("proc_out"="new_procout")) %>% -# dplyr::left_join(., dat_procout_demi, by = c("proc_out"="product")) %>% -# dplyr::filter(is.na(original_id)) %>% -# # dplyr::filter(!is.na(dietary_products)) %>% -# dplyr::filter(food_cat == "food") %>% -# distinct_at(vars(proc_out)) -# -# write_csv(proc_out_missing, "Input_data/proc_out_missing.csv") -# -# dat_humnutr_cifos %>% -# dplyr::select(c(4:5), product_lc) %>% -# right_join(., (dat_proc_newdat_humnutr_cifos), -# by = c("product_lc"="proc_out")) %>% -# dplyr::filter(is.na(product)) %>% -# dplyr::anti_join(., dat_procout_demi, by = c("product_lc"="product")) %>% -# dplyr::anti_join(.,dat_map_old_new_procout,by = c("product"="new_procout")) -# -# write_csv(proc_out_new, "Input_data/proc_out_new.csv") -# -# -# -# -# # Checking the overlap of updated processing sheet with demis nutritional sheet -# dat_procout_demi = read_csv("Input_data/demi_human_food.csv") %>% -# filter(!product=="g" & -# !product =="barley_maltculms") %>% -# dplyr::select(c(4:5), product) -# -# -# # %>% -# full_join(., (dat_proc_new %>% dplyr::select(proc_out, dietary_products)), -# by = c("product"="proc_out")) -# -# dat_procout_to_find_demi = dat_procout_all %>% dplyr::filter(is.na(original_id)) %>%# this needs to be checked for in the old human nutrition sheet -# write_csv("Input_data/humNutr_demitofind.csv") -# - - # Animal nutrition new ---------------------------------------------------- # Cifos sheet @@ -1449,6 +1236,7 @@ FunAnimDatExtract = function(dat, cvb_code, cvb_name, product){ product = "grass_arable_fresh") + alfalfafor_fresh = read_xlsx("Input_data/CVB_procout/Lucerne (alfalfa), hay (5004.606).xlsx", col_names = F) %>% FunAnimDatExtract(cvb_code = "5004.606" , cvb_name = "Lucerne (alfalfa), hay", @@ -1603,7 +1391,6 @@ FunAnimDatExtract = function(dat, cvb_code, cvb_name, product){ cvb_name = "Feed beans, heat treated", product = "beans_dry_vegetable") - other_tubers_flour = read_xlsx("Input_data/CVB_procout/Sweet potatoes, dried (4007.611)_1_18_2022 2 30 17 PM.xlsx", col_names = F) %>% FunAnimDatExtract(cvb_code = "4007.611" , cvb_name = "Sweet potatoes, dried", @@ -1614,13 +1401,11 @@ FunAnimDatExtract = function(dat, cvb_code, cvb_name, product){ cvb_name = "Sweet potatoes, dried", product = "other_tubers_dry") - groundnut_oil = read_xlsx("Input_data/CVB_procout/Fat_oil, Groundnut oil (2013.421)_1_18_2022 3 08 32 PM.xlsx", col_names = F) %>% FunAnimDatExtract(cvb_code = "2013.421" , cvb_name = "Fat_oil, Groundnut oil", product = "groundnut_oil") - groundnut_butter = read_xlsx("Input_data/CVB_procout/Fat_oil, Groundnut oil (2013.421)_1_18_2022 3 08 32 PM.xlsx", col_names = F) %>% FunAnimDatExtract(cvb_code = "2013.421" , cvb_name = "Fat_oil, Groundnut oil", @@ -1641,13 +1426,11 @@ FunAnimDatExtract = function(dat, cvb_code, cvb_name, product){ cvb_name = "Maize germs", product = "maize_germ") - maize_germ = read_xlsx("Input_data/CVB_procout/Maize germs (1002.102)_1_18_2022 3 14 58 PM.xlsx", col_names = F) %>% FunAnimDatExtract(cvb_code = "1002.102" , cvb_name = "Maize germs", product = "maize_germ") - maize_oil = read_xlsx("Input_data/CVB_procout/Fat_oil, Maize oil (1002.421)_1_18_2022 3 16 25 PM.xlsx", col_names = F) %>% FunAnimDatExtract(cvb_code = "1002.421" , cvb_name = "Fat_oil, Maize oil", @@ -1721,6 +1504,25 @@ FunAnimDatExtract = function(dat, cvb_code, cvb_name, product){ FunAnimDatExtract(cvb_code = "3012.505" , cvb_name = "Soya bean hulls", product = "other_pulses_bran") + + # Grass from monfreda + ryefor_fresh = read_xlsx("Input_data/CVB_procout/Grass hay, c) good quality (5010.703).xlsx", col_names = F) %>% + FunAnimDatExtract(cvb_code = "5010.703" , + cvb_name = "Grass hay, c) good quality", + product = "ryefor_fresh") + + ryefor_silage = read_xlsx("Input_data/CVB_procout/Grass silage, a) clay soil, before 21 June (5010.140).xlsx", col_names = F) %>% + FunAnimDatExtract(cvb_code = "5010.140" , + cvb_name = "Grass silage, a) clay soil, before 21 June", + product = "ryefor_silage") + + + ryefor_dry = read_xlsx("Input_data/CVB_procout/Grass hay, c) good quality (5010.703)_1_18_2022 3 20 24 PM.xlsx", col_names = F) %>% + FunAnimDatExtract(cvb_code = "5010.703" , + cvb_name = "Grass hay, c) good quality", + product = "ryefor_hay") + + } # Combining all feeds dat_anim = bind_rows(soyabean_hulls, coconuts_cake_copra, cow_peas_bran, pearl_millet_bran, @@ -1741,7 +1543,8 @@ dat_anim = bind_rows(soyabean_hulls, coconuts_cake_copra, cow_peas_bran, pearl_m temperate_fruit_pulp,tropical_fruits_pulp,maize_germ,maize_oil, grass_arable_hay, grass_arable_silage, grass_pasture_hay,grass_pasture_silage, alfalfafor_silage, alfalfafor_hay, cloverfor_hay,cloverfor_silage, - soyabean_feed_hulls,wheat_wholemeal_germ,oilseedfor_hulls,barley_hulls,other_pulses_bran) + soyabean_feed_hulls,wheat_wholemeal_germ,oilseedfor_hulls,barley_hulls,other_pulses_bran, + ryefor_fresh, ryefor_silage, ryefor_dry) write_csv(dat_anim, "Input_Data/dat_anim.csv") @@ -1915,7 +1718,7 @@ harvestwaste = bind_rows(crop_harvestwaste,asf_harvestwaste) foodwaste = hum_nutr_all %>% distinct_at(vars(product), .keep_all = T) -foodwaste_vec = foodwaste %>% pull(product) +foodwaste_vec = foodwaste %>% pull(product) # foodwaste products that match coproducts animal match_coprods_foodwaste = animal_coproducts %>% @@ -1954,16 +1757,6 @@ match_rest = dat_animal_nutr_cifos %>% match_rest[] <- mapply(FUN = as,match_rest,sapply(dat_miss_downl,class), SIMPLIFY = FALSE) -# Food waste that matches the initial data -# foodwaste_old = dat_animal_nutr_cifos %>% -# dplyr::filter(product_lc %in% foodwaste) %>% -# # dplyr::mutate(na = "foodwaste") %>% -# select(-product) %>% -# rename(origin = na, -# product = product_lc) -# -# foodwaste_old[] <- mapply(FUN = as,foodwaste_old,sapply(dat_miss_downl,class), SIMPLIFY = FALSE) - # Bind food waste foodwaste_all = bind_rows(match_coprods_foodwaste,match_animal, match_rest,tea_food_waste) %>% distinct_at(vars(product), .keep_all = T) @@ -1978,334 +1771,9 @@ animal_nutrition_all = bind_rows(harvestwaste, animal_coproducts, foodwaste_all) dplyr::select(-raw_nevo, -cvb_code, -family) write_csv(animal_nutrition_all, "Input_data/animal_nutrition_all.csv") +read_csv("Input_data/animal_nutrition_all.csv") -# # Animal nutrition sheet ------------------------------------------------- -# # Cifos sheet -# dat_animnutr = readxl::read_excel("Input_data/Copy of European_CiFoS_model_data_ANITANov21.xlsx", sheet = "Animal_Nutr") -# dat_animnutr %>% janitor::row_to_names(1) -# -# # Which procouts are needed? -# # Checking what is missing in the humann nutrition shheet so that we can add what is missing from the RIVM sheet -# dat_animal_nutr_cifos = dat_animnutr %>% -# janitor::row_to_names(1) %>% -# janitor::clean_names() %>% -# mutate(product_lc = tolower(product)) %>% -# relocate(product_lc, .before = "product") -# # write_csv(dat_humnutr_cifos, "Input_data/dat_humnutr_cifos.csv") -# -# dat_miss_animal = dat_animal_nutr_cifos %>% -# # dplyr::select(c(4:5), product_lc) %>% -# right_join(., (feed_proc %>% dplyr::select(proc_out, dietary_products)), -# by = c("product_lc"="proc_out")) %>% -# dplyr::filter(is.na(product)) -# -# -# # Missing animal feeds -# miss_animal_nutr = dat_miss_animal %>% pull(product_lc) -# -# # CVB sheet - data pulling function -# anm_nutr_cols = colnames(dat_animal_nutr_cifos) %>% -# as_tibble() #%>% -# # write_csv("Input_data/anm_nutr_cols.csv") -# -# cvb_cifos_map = read_csv("Input_data/anm_nutr_cols_mapd.csv") %>% -# dplyr::mutate(cvb_cols_mix = case_when(is.na(cvb_cols) ~ cifos_cols, -# TRUE ~ cvb_cols)) %>% -# dplyr::mutate(cvb_cols_mix = tolower(cvb_cols_mix)) -# -# # Getting the generic row positions of the cvb variables that we need -# vec_cvb_cifos = read_csv("Input_data/anm_nutr_cols_mapd.csv")%>% -# drop_na(cvb_row_pos) %>% -# filter(!cvb_row_pos %in% c(-999,-99)) %>% -# pull(cvb_row_pos) -# -# # # Getting the procout -# # c -# # # Getting the correct values and widen data set -# # weende_soyhul = soy_hulls %>% -# # dplyr::mutate(across(c(1), tolower)) %>% -# # dplyr::slice(vec_cvb_cifos) %>% -# # dplyr::rename(content = ...2, -# # unit = ...4, -# # nutrient = `Weende analysis`) %>% -# # dplyr::select(-c(3)) -# # -# # dat_crop = cvb_cifos_map %>% -# # mutate(cvb_cols = tolower(cvb_cols)) %>% -# # dplyr::left_join(., weende_soyhul, by = c("cvb_cols_mix"="nutrient")) %>% -# # distinct(cifos_cols, .keep_all = T) %>% -# # dplyr::select(cifos_cols, content) %>% -# # tidyr::pivot_wider(names_from = cifos_cols, -# # values_from = content) %>% -# # dplyr::mutate(cvb_code = cvb_code_vec) -# # -# # # Loading all the files from cvb -# -# -# # Function -# FunAnimDatExtract = function(dat_downloaded, cvb_code, cvb_name, product){ -# -# dat = dat_downloaded %>% -# dplyr::mutate(across(c(1), tolower)) %>% -# dplyr::slice(vec_cvb_cifos) %>% -# dplyr::rename(content = ...2, -# unit = ...4, -# nutrient = `Weende analysis`) %>% -# dplyr::select(-c(3)) -# -# dat_crop = cvb_cifos_map %>% -# mutate(cvb_cols = tolower(cvb_cols)) %>% -# dplyr::left_join(., dat, by = c("cvb_cols_mix"="nutrient")) %>% -# distinct(cifos_cols, .keep_all = T) %>% -# dplyr::select(cifos_cols, content) %>% -# tidyr::pivot_wider(names_from = cifos_cols, -# values_from = content) %>% -# dplyr::mutate(cvb_code = !!cvb_code, -# cvb_name = !!cvb_name, -# product = !!product) %>% -# relocate(cvb_name, .after = cvb_code) -# } -# -# # Extract and format -# -# soyabean_hulls = read_xlsx("Input_data/CVB_procout/Soya bean hulls (3012.505)_12_15_2021 6 23 57 PM.xlsx") %>% #CF 320-360 g/kg -# FunAnimDatExtract(cvb_code = "3012.505" , -# cvb_name = "Soya bean hulls", -# product = "soyabean_hulls") -# -# coconuts_cake_copra = read_xlsx("Input_data/CVB_procout/Copra cake (3015.401)_12_15_2021 6 35 06 PM.xlsx") %>% #CFAT > 100g/kg -# FunAnimDatExtract(cvb_code = "3015.401" , -# cvb_name = "Copra cake", -# product = "coconuts_cake_copra") -# -# cow_peas_bran = read_xlsx("Input_data/CVB_procout/Soya bean hulls (3012.505)_12_15_2021 6 44 56 PM.xlsx") %>% #CF 320-360 g/kg -# FunAnimDatExtract(cvb_code = "3012.505" , -# cvb_name = "Soya bean hulls", -# product = "cow_peas_bran") -# -# pearl_millet_bran = read_excel("Input_data/CVB_procout/Rice bran meal, solvent extracted (1003.416).xlsx") %>% -# FunAnimDatExtract(cvb_code = "1003.416" , -# cvb_name = "Rice bran meal", -# product = "pearl_millet_bran") -# -# oil_palm_kernels_cake = read_xlsx("Input_data/CVB_procout/Palm kernel expeller (3001.401)_12_15_2021 6 54 41 PM.xlsx") %>% #CF >180 g/kg -# FunAnimDatExtract(cvb_code = "3001.401" , -# cvb_name = "Palm kernel expeller", -# product = "oil_palm_kernels_cake") -# -# -# sorghum_bran = read_xlsx("Input_data/CVB_procout/Rice bran meal, solvent extracted (1003.416).xlsx") %>% -# FunAnimDatExtract(cvb_code = "1003.416" , -# cvb_name = "Rice bran meal", -# product = "sorghum_bran") -# -# -# bagasse = read_xlsx("Input_data/CVB_procout/Sugarbeet pulp, pressed, ensiled (4004.244).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4004.244" , -# cvb_name = "Sugarbeet pulp", -# product = "bagasse") -# -# -# chickpea_bran = read_xlsx("Input_data/CVB_procout/Soya bean hulls (3012.505)_12_15_2021 6 44 56 PM.xlsx") %>% -# FunAnimDatExtract(cvb_code = "3012.505" , -# cvb_name = "Soya bean hulls", -# product = "chickpea_bran") -# -# beans_dry_bran =read_xlsx("Input_data/CVB_procout/Soya bean hulls (3012.505)_12_15_2021 6 44 56 PM.xlsx") %>% -# FunAnimDatExtract(cvb_code = "3012.505" , -# cvb_name = "Soya bean hulls", -# product = "beans_dry_bran") -# -# -# other_pulses_bran = read_xlsx("Input_data/CVB_procout/Soya bean hulls (3012.505)_12_15_2021 6 44 56 PM.xlsx") %>% -# FunAnimDatExtract(cvb_code = "3012.505" , -# cvb_name = "Soya bean hulls", -# product = "other_pulses_bran") -# -# lentils_bran = read_xlsx("Input_data/CVB_procout/Soya bean hulls (3012.505)_12_15_2021 6 44 56 PM.xlsx") %>% -# FunAnimDatExtract(cvb_code = "3012.505" , -# cvb_name = "Soya bean hulls", -# product = "lentils_bran") -# -# -# pigeon_peas_bran = read_xlsx("Input_data/CVB_procout/Soya bean hulls (3012.505)_12_15_2021 6 44 56 PM.xlsx") %>% -# FunAnimDatExtract(cvb_code = "3012.505" , -# cvb_name = "Soya bean hulls", -# product = "pigeon_peas_bran") -# -# -# cow_peas_dry_bran = read_xlsx("Input_data/CVB_procout/Soya bean hulls (3012.505)_12_15_2021 6 44 56 PM.xlsx") %>% -# FunAnimDatExtract(cvb_code = "3012.505" , -# cvb_name = "Soya bean hulls", -# product = "cow_peas_dry_bran") -# -# -# groundnut_cake = read_xlsx("Input_data/CVB_procout/Groundnut expeller (2013.401).xlsx") %>% #partly dehulled CF75 - 145 g/kg -# FunAnimDatExtract(cvb_code = "2013.401" , -# cvb_name = "Groundnut expeller", -# product = "groundnut_cake") -# -# -# other_cereals_bran = read_xlsx("Input_data/CVB_procout/Rice bran meal, solvent extracted (1003.416).xlsx") %>% -# FunAnimDatExtract(cvb_code = "1003.416" , -# cvb_name = "Rice bran meal", -# product = "other_cereals_bran") -# -# olive_cake = read_xlsx("Input_data/CVB_procout/Sunflower seed expeller (3003.401).xlsx") %>% -# FunAnimDatExtract(cvb_code = "3003.401" , -# cvb_name = "Sunflower seed expeller", -# product = "olive_cake") -# -# maize_bran = read_xlsx("Input_data/CVB_procout/Maize bran (1002.108).xlsx") %>% -# FunAnimDatExtract(cvb_code = "1002.108" , -# cvb_name = "Maize bran", -# product = "maize_bran") -# -# maize_cake = read_xlsx("Input_data/CVB_procout/Maize germs expeller (1002.417).xlsx") %>% -# FunAnimDatExtract(cvb_code = "1002.417" , -# cvb_name = "Maize germs expeller", -# product = "maize_cake") -# -# maize_silage = read_xlsx("Input_data/CVB_procout/Maize silage (5008.602).xlsx") %>% -# FunAnimDatExtract(cvb_code = "5008.602" , -# cvb_name = "Maize silage", -# product = "maize_silage") -# -# grass_rangeland_fresh = read_xlsx("Input_data/CVB_procout/Grass hay, a) poor quality (5010.701).xlsx") %>% -# FunAnimDatExtract(cvb_code = "5010.701" , -# cvb_name = "Grass hay, a) poor quality", -# product = "grass_rangeland_fresh") -# -# grass_pasture_fresh = read_xlsx("Input_data/CVB_procout/Grass hay, b) average quality (5010.702).xlsx") %>% -# FunAnimDatExtract(cvb_code = "5010.702" , -# cvb_name = "Grass hay, b) average quality", -# product = "grass_pasture_fresh") -# -# grass_arable_fresh = read_xlsx("Input_data/CVB_procout/Grass hay, c) good quality (5010.703).xlsx") %>% -# FunAnimDatExtract(cvb_code = "5010.703" , -# cvb_name = "Grass hay, c) good quality", -# product = "grass_arable_fresh") -# -# -# alfalfafor_fresh = read_xlsx("Input_data/CVB_procout/Lucerne (alfalfa), hay (5004.606).xlsx") %>% -# FunAnimDatExtract(cvb_code = "5004.606" , -# cvb_name = "Lucerne (alfalfa), hay", -# product = "alfalfafor_fresh") -# -# -# cloverfor_fresh = read_xlsx("Input_data/CVB_procout/Clover red, hay (5003.606).xlsx") %>% -# FunAnimDatExtract(cvb_code = "5003.606" , -# cvb_name = "Clover red, hay", -# product = "cloverfor_fresh") -# -# beetfor_leaves = read_xlsx("Input_data/CVB_procout/Sugarbeet leaves, fresh (4004.642).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4004.642" , -# cvb_name = "Sugarbeet leaves, fresh", -# product = "beetfor_leaves") -# -# beetfor_root = read_xlsx("Input_data/CVB_procout/Fodderbeets, fresh (4005.000).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4005.000" , -# cvb_name = "Fodderbeets, fresh", -# product = "beetfor_root") -# -# cabbagefor_plant = read_xlsx("Input_data/CVB_procout/Cabbage (red_white_sav.), fresh (6023.000).xlsx") %>% -# FunAnimDatExtract(cvb_code = "6023.000" , -# cvb_name = "Cabbage (red_white_sav.), fresh", -# product = "cabbagefor_plant") -# -# carrots_fresh = read_xlsx("Input_data/CVB_procout/Carrots (4006.000).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4006.000" , -# cvb_name = "Carrots", -# product = "carrots_fresh") -# -# -# carrots_tops_fresh = read_xlsx("Input_data/CVB_procout/Sugarbeet leaves with tops, fresh (4004.647).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4004.647" , -# cvb_name = "Sugarbeet leaves with tops, fresh", -# product = "carrots_tops_fresh") -# -# turnipfor_leave = read_xlsx("Input_data/CVB_procout/Sugarbeet leaves, fresh (4004.642).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4004.642" , -# cvb_name = "Sugarbeet leaves, fresh", -# product = "turnipfor_leave") -# -# -# turnipfor_root = read_xlsx("Input_data/CVB_procout/Cabbage (turnip cabbage), fresh (4012.000).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4012.000" , -# cvb_name = "Cabbage (turnip cabbage), fresh", -# product = "turnipfor_root") -# -# -# swedefor_leave = read_xlsx("Input_data/CVB_procout/Sugarbeet leaves, fresh (4004.642).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4004.642" , -# cvb_name = "Sugarbeet leaves, fresh", -# product = "swedefor_leave") -# -# -# swedefor_root = read_xlsx("Input_data/CVB_procout/Fodderbeets, fresh (4005.000).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4005.000" , -# cvb_name = "Fodderbeets, fresh", -# product = "swedefor_root") -# -# legumenesfor_straw = read_xlsx("Input_data/CVB_procout/Bean straw (Phaseolus) (2001.508).xlsx") %>% -# FunAnimDatExtract(cvb_code = "2001.508" , -# cvb_name = "Bean straw (Phaseolus)", -# product = "legumenesfor_straw") -# -# legumenesfor_bean = read_xlsx("Input_data/CVB_procout/Field beans (Vicia faba) ensiled (5001.602).xlsx") %>% -# FunAnimDatExtract(cvb_code = "5001.602" , -# cvb_name = "Bean straw (Phaseolus)", -# product = "legumenesfor_bean") -# -# vegfor_whole = read_xlsx("Input_data/CVB_procout/Cabbage (red_white_sav.), fresh (6023.000).xlsx") %>% -# FunAnimDatExtract(cvb_code = "6023.000" , -# cvb_name = "Cabbage (red_white_sav.), fresh", -# product = "vegfor_whole") -# -# -# ryefor_fresh = read_xlsx("Input_data/CVB_procout/Rye (1007.000).xlsx") %>% -# FunAnimDatExtract(cvb_code = "1007.000" , -# cvb_name = "Rye", -# product = "ryefor_fresh") -# -# -# fornesfor_plant = beetfor_root = read_xlsx("Input_data/CVB_procout/Fodderbeets, fresh (4005.000).xlsx") %>% -# FunAnimDatExtract(cvb_code = "4005.000" , -# cvb_name = "Fodderbeets, fresh", -# product = "fornesfor_plant") -# -# # Combining all feeds -# dat_anim = bind_rows(soyabean_hulls, coconuts_cake_copra, cow_peas_bran, pearl_millet_bran,oil_palm_kernels_cake, -# sorghum_bran, bagasse,chickpea_bran, beans_dry_bran,lentils_bran, pigeon_peas_bran, -# cow_peas_dry_bran, groundnut_cake, other_cereals_bran, olive_cake, maize_bran, maize_cake, -# maize_silage, grass_rangeland_fresh, grass_pasture_fresh,grass_arable_fresh, alfalfafor_fresh, -# cloverfor_fresh, beetfor_leaves, beetfor_root, cabbagefor_plant, carrots_fresh,carrots_tops_fresh, -# turnipfor_root,turnipfor_leave,swedefor_leave,swedefor_root, legumenesfor_straw, legumenesfor_bean, -# vegfor_whole, ryefor_fresh, fornesfor_plant) -# -# -# write_csv(dat_anim, "Input_Data/dat_anim.csv") -# -# # "fornesfor_plant" "ryefor_fresh" "" -# -# ## Missing -# # cocoa_powder_cake -# # cocoa_husks -# -# # maybe add -# # - copra meal -# # - coconut oil -# # - carrot peel -# -# - - - - -# Calculating fields -# Which fields need to be calculated? - # Loss fraction sheet ---------------------------------------------------- dat_lossfrac = read_excel("Input_data/Copy of European_CiFoS_model_data_ANITANov21.xlsx", sheet = "Loss_Fraction_New") dat_lossfrac_join= dat_lossfrac %>% dplyr::select(c(1:10)) %>% janitor::row_to_names(1)%>% select(-ProdCat ,-Fam_SPAM) %>% @@ -2321,7 +1789,6 @@ crop_loss = crop_harvestwaste %>% distinct_at(vars(product)) %>% relocate(product, .after = "ProdCat")%>% distinct_at(vars(product), .keep_all = T) - # Co-product - from animal nutrition sheet coproduct_loss = animal_coproducts %>% distinct_at(vars(product)) %>% mutate(ProdCat = "co-product", @@ -2337,7 +1804,6 @@ foodwaste_loss = foodwaste_all %>% distinct_at(vars(product)) %>% relocate(product, .after = "ProdCat")%>% distinct_at(vars(product), .keep_all = T) - # HarvestWaste harvest_loss = crop_harvestwaste %>% distinct_at(vars(product)) %>% mutate(ProdCat = "harvest_waste", @@ -2353,6 +1819,13 @@ food_loss = hum_nutr_all %>% distinct_at(vars(product)) %>% distinct_at(vars(product), .keep_all = T) +other_losses = tibble( + ProdCat = "other", + product = c('flax_fiber_and_tow', + 'seed_cotton_fibres', + 'tobacco_leaves') +) + # Fish - from the old loss fraction sheet fish_vec = c('Atlantic_herring', 'Atlantic_cod', @@ -2409,7 +1882,8 @@ grass_loss = proc_new %>% filter(grepl('grass', proc_out)) %>% distinct_at(vars(product), .keep_all = T) -loss_fraction_1 = bind_rows(crop_loss, coproduct_loss,foodwaste_loss,harvest_loss, food_loss,fish_loss,mmegg_loss, grass_loss) +loss_fraction_1 = bind_rows(crop_loss, coproduct_loss,foodwaste_loss,harvest_loss, + food_loss,fish_loss,mmegg_loss, grass_loss,other_losses) # Fuzzy join loss_frac_join = loss_fraction_1 %>% drop_na(product) %>% group_by(ProdCat) %>% @@ -2434,6 +1908,37 @@ loss_frac_all = read_csv("Input_data/lossfraction_mapping_done.csv") %>% write_csv(loss_frac_all, "Input_data/loss_frac_all.csv") + + +# Consistency checks ----------------------------------------------------- +# RULE: What is in the procout ani nutrition should be in the processing and the loss fraction sheet product +# A$C[!A$C %in% B$C] # returns all values of A$C that are NOT in B$C + +# All values of animal nutrition that are not in loss fraction +animal_nutrition_all$product[!animal_nutrition_all$product %in% loss_frac_all$Product] +# NONE --> + +# All values of human nutrition that are not in loss fraction +hum_nutr_all$product[!hum_nutr_all$product %in% loss_frac_all$Product] +# [1] "NONE" --> GOOD! + +# All values of animal nutrition that are not in processing fraction +animal_coproducts$product[!animal_coproducts$product %in% Processing_sheet_final$proc_out] +# [1] None! Good + +# All values of humanutrition that are not in processing sheet +hum_nutr_all$product[!hum_nutr_all$product %in% Processing_sheet_final$proc_out] +# None -- Good! + +# All values that of processing that are not in loss fraction +Processing_sheet_final$proc_out[!Processing_sheet_final$proc_out %in% loss_frac_all$Product] +# None! + +# All the values that are in the loss fraction but not in the processing +loss_frac_all$Product[!loss_frac_all$Product %in% rbind(Processing_sheet_final$proc_out, Processing_sheet_final$proc_raw)] +# NONE --> GOOOD! + + # Fert_suitability sheet -------------------------------------------------- dat_fertsuitability = read_excel("Input_data/Copy of European_CiFoS_model_data_ANITANov21.xlsx", sheet = "Fert_Suitability") %>% dplyr::rename(scenario=1,crop_cifos = 2) @@ -2602,6 +2107,7 @@ Baseline_area_crop_ha = Livestock_Crop %>% as_tibble() %>% write_csv(Baseline_area_crop_ha, "Input_data/Baseline_area_crop_ha.csv") + # Crop_others sheet ------------------------------------------------------- # crop_other_old = read_excel("C:/Wolfram_Admin/GAMS/EU_model_frmSep21/cifos-model_eu/European_CiFoS_model_data.xlsx", sheet = "Crop_Other") # crop_other_old %>% write_csv("Input_data/crop_other.csv") @@ -2614,7 +2120,7 @@ crop_other_new = crop_other_old %>% dplyr::select(-c(27:52, DM:HI)) %>% dplyr::rename(crop_cifos_old = `...1`, Rotation=`Rotation...26`) %>% - full_join(crop_map %>% select(old_cifos_crop, crop_cifos), by = c("crop_cifos_old"="old_cifos_crop")) %>% + full_join(crop_map %>% dplyr::select(old_cifos_crop, crop_cifos), by = c("crop_cifos_old"="old_cifos_crop")) %>% relocate(crop_cifos , .before = crop_cifos_old) %>% relocate(arable, .after = Rotation) %>% # dplyr::filter(!grepl("Grass", crop_cifos)) @@ -2627,6 +2133,19 @@ crop_other_new = write_csv(crop_other_new, "Input_Data/crop_other_new.csv") +# cropnutr = read_excel('C:/Wolfram_Admin/GAMS/EU_model_frmSep21/cifos-model_eu/European_CiFoS_model_data.xlsx',sheet="CropNutr") +# write_csv(cropnutr,"Input_data/cropnutr_old") +cropnutr = read_csv("Input_data/cropnutr_old") + +# match the new crops +cropnutr_new = + cropnutr %>% dplyr::rename(crop_cifos_old = `...1`) %>% + full_join(crop_map %>% dplyr::select(old_cifos_crop, crop_cifos), by = c("crop_cifos_old"="old_cifos_crop")) %>% + relocate(crop_cifos, .before = crop_cifos_old) %>% + dplyr::select(-crop_cifos_old) + + write_csv(cropnutr_new, "Input_data/cropnutr_new.csv") + # CropFert_New NOT DONE! ------------------------------------------------------------ # CropFert_New = read_excel("C:/Wolfram_Admin/GAMS/EU_model_frmSep21/cifos-model_eu/European_CiFoS_model_data.xlsx", sheet = "CropFert_New") # CropFert_New %>% write_csv("Input_data/CropFert_New.csv") @@ -2759,3 +2278,11 @@ write_csv(animal_map, "Input_Data/diets_animal_crop_datamap.csv") + + + + + + + +