Skip to content
Snippets Groups Projects
Select Git revision
  • 7652dd95aaba6017718af61ffdae26089114b3cf
  • main default protected
2 results

sectorMappingNACE2GTAP.R

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    sectorMappingNACE2GTAP.R 1.48 KiB
    # 
    # This script will map the NACE sectors in the original secnarios to the GTAP sectors.
    # Uses the mapping provided by Lin Ma.
    # 
    # Benjamin Blanz 2024
    # 
    
    library(readxl)
    GTAP_NACE_sector_mapping <- read_excel("helperData/GTAP_NACE_sector_mapping.xlsx")
    
    # files for which we will map the sectors to GTAP
    files <- list.files('scenarios',pattern = 'NACE.csv',recursive = T)
    files <- paste0('scenarios/',files)
    files[length(files)+1] <- 'helperData/countryLevelStocksNACE.csv'
    files[length(files)+1] <- 'helperData/nuts3LevelStocksNACE.csv'
    
    # Mapping of sectors
    for (file in files){
    	cat(sprintf('GTAPifying %s...',file))
    	data <- read.csv(file)
    	names(data)[names(data)=='ALL'] <- 'TOTAL'
    	dataCols <- grep('ALL|TOTAL|^[A-Z]$',names(data),perl = T)
    	for( i in dataCols){
    		data[,i] <- suppressWarnings(as.numeric(data[,i]))
    	}
    	data[is.na(data)] <- 0
    	dataGTAP <- data
    	dataGTAP[,dataCols] <- NULL
    	for( GTAPcode.i in 1:nrow(GTAP_NACE_sector_mapping)){
    		dataGTAP[[GTAP_NACE_sector_mapping$`GTAP Code`[GTAPcode.i]]] <- NA
    		NACEcode <- GTAP_NACE_sector_mapping$`NACE Code`[GTAPcode.i]
    		NACEcodes <- strsplit(NACEcode,'\\.')[[1]]
    		if(sum(NACEcodes %in% colnames(data))==length(NACEcodes))
    			if(length(NACEcodes)>1){
    				dataGTAP[[GTAP_NACE_sector_mapping$`GTAP Code`[GTAPcode.i]]] <- 
    					rowSums(data[,NACEcodes])
    			} else {
    				dataGTAP[[GTAP_NACE_sector_mapping$`GTAP Code`[GTAPcode.i]]] <- 
    					data[,NACEcodes]
    			}
    	}
    	write.csv(dataGTAP,gsub('NACE.csv','GTAP.csv',file),row.names = F)
    	cat('done\n')
    }