# data prep: keep only data with yearly pay basis; from new variables # NM*; output allnm, the collective data for all years dataprep <- function() { for (yr in 2001:2009) { tmp <- read.csv(paste(yr,".csv",sep=""),header=T,stringsAsFactors=FALSE) tmp$NMYear <- yr # restrict to those using annual pay period if (yr <= 2004) { tmp$NMSalary <- tmp$Salary tmp$NMPrvlWg <- tmp$Prevail_Wage tmp$NMPrvlWgLvl <- NA tmp$NMJobTitle <- tmp$OCC_Title tmp$NMJobCode <- tmp$Occ_Code tmp$NMEmpName <- tmp$Emp_Name tmp$NMNation <- NA goodrows <- tmp$Unit_of_Pay == "A" if (yr == 2001) { allnm <<- tmp[goodrows,28:35] } else { allnm <<- rbind(allnm,tmp[goodrows,28:35]) } } else if (yr == 2005) { tmp$NMSalary <- tmp$Wage_Offered_From tmp$NMPrvlWg <- tmp$Prevailing_Wage_Amount tmp$NMPrvlWgLvl <- tmp$Prevailing_Wage_Level tmp$NMJobTitle <- tmp$Prevailing_Wage_Job_Title tmp$NMJobCode <- tmp$Prevailing_Wage_SOC_CODE tmp$NMEmpName <- tmp$Employer_Name tmp$NMNation <- tmp$Alien_Citizenship_Country goodrows <- tmp$Wage_Per == "Year" allnm <<- rbind(allnm,tmp[goodrows,24:31]) } else if (yr == 2006) { tmp$NMSalary <- tmp$Wage_Offered_From tmp$NMPrvlWg <- tmp$Prevailing_Wage_Amount tmp$NMPrvlWgLvl <- tmp$Prevailing_Wage_Level tmp$NMJobTitle <- tmp$Prevailing_Wage_Job_Title tmp$NMJobCode <- tmp$Prevailing_Wage_SOC_CODE tmp$NMEmpName <- tmp$Employer_Name tmp$NMNation <- tmp$Alien_Citizenship_Country goodrows <- tmp$Wage_Per == "Year" allnm <<- rbind(allnm,tmp[goodrows,25:32]) } else if (yr == 2007) { tmp$NMSalary <- tmp$WAGE_OFFER_FROM_9089 tmp$NMPrvlWg <- tmp$PW_AMOUNT_9089 tmp$NMPrvlWgLvl <- tmp$PW_LEVEL_9089 tmp$NMJobTitle <- tmp$PW_JOB_TITLE_9089 tmp$NMJobCode <- tmp$PW_SOC_CODE tmp$NMEmpName <- tmp$EMPLOYER_NAME tmp$NMNation <- tmp$COUNTRY_OF_CITZENSHIP goodrows <- tmp$PW_UNIT_OF_PAY_9089=="yr" allnm <<- rbind(allnm,tmp[goodrows,26:33]) } else if (yr == 2008) { tmp$NMSalary <- tmp$WAGE_OFFER_FROM_9089 tmp$NMPrvlWg <- tmp$PW_AMOUNT_9089 tmp$NMPrvlWgLvl <- tmp$PW_LEVEL_9089 tmp$NMJobTitle <- tmp$PW_JOB_TITLE_9089 tmp$NMJobCode <- tmp$PW_SOC_CODE tmp$NMEmpName <- tmp$EMPLOYER_NAME tmp$NMNation <- tmp$COUNTRY_OF_CITZENSHIP goodrows <- tmp$PW_UNIT_OF_PAY_9089=="YR" allnm <<- rbind(allnm,tmp[goodrows,26:33]) } else if (yr == 2009) { tmp$NMSalary <- tmp$WAGE.OFFER.FROM.9089 tmp$NMPrvlWg <- tmp$PW.AMOUNT.9089 tmp$NMPrvlWgLvl <- tmp$PW.LEVEL.9089 tmp$NMJobTitle <- tmp$PW.JOB.TITLE.9089 tmp$NMJobCode <- tmp$PW.SOC.CODE tmp$NMEmpName <- tmp$EMPLOYER.NAME tmp$NMNation <- tmp$COUNTRY.OF.CITZENSHIP goodrows <- tmp$PW.UNIT.OF.PAY.9089=="yr" allnm <<- rbind(allnm,tmp[goodrows,26:33]) } tmp <- tmp[goodrows,] assign(paste("all",yr,sep=""),tmp,pos=.GlobalEnv) } tm <- allnm$NMSalary / allnm$NMPrvlWg allnm <<- cbind(allnm,tm) # eliminate weirds allnm <<- allnm[!is.na(allnm$NMPrvlWg),] allnm <<- allnm[allnm$NMPrvlWg > 35000,] se <<- allnm[grepl("Software Engineer",allnm$NMJobTitle),] # major rule change in prevailing wage starting in 2005 allnm05 <<- allnm[allnm$NMYear >= 2005,] se05 <<- se[se$NMYear >= 2005,] } # find median wage ratio for the given firm medwr <- function(firm) { cat(firm," ") cat(median(allnm05[allnm05$NMEmpName==firm,9],na.rm=T)) cat(" n =",sum(allnm05$NMEmpName==firm,na.rm=T),"\n") } # find median wage ratio for the given firm, among software engineers medwrse <- function(firm) { cat(firm,", Soft. Eng. ") cat(median(se05[se05$NMEmpName==firm,9],na.rm=T)) cat(" n =",sum(se05$NMEmpName==firm,na.rm=T),"\n") } # find % with WR > 1.5 for the given firm wr15 <- function(firm) { cat(firm," ") firmdata <- allnm05[allnm05$NMEmpName==firm,] nbig <- sum(firmdata$tm > 1.5,na.rm=T) nfull <- nrow(firmdata) cat(nbig/nfull,"\n") } # find median wage ratio for the given firm and given nation medwrfn <- function(firm,nation) { cat(firm," ") nationals <- allnm05[allnm05$NMEmpName==firm & allnm05$NMNation==nation,] cat(median(nationals$tm,na.rm=T)) cat(" n =",nrow(nationals),"\n") } explore <- function() { print(median(allnm05$tm,na.rm=T)) # I did not report if n < 50 medwr("MICROSOFT CORPORATION") medwr("INTEL CORPORATION") medwr("GOOGLE INC.") medwr("CISCO SYSTEMS, INC.") medwr("ORACLE USA, INC.") medwr("HEWLETT-PACKARD COMPANY") medwr("MOTOROLA, INC.") medwr("QUALCOMM, INC.") medwr("EBAY INC") medwr("PAYPAL INC") medwrse("MICROSOFT CORPORATION") medwrse("INTEL CORPORATION") medwrse("GOOGLE INC.") medwrse("CISCO SYSTEMS, INC.") medwrse("ORACLE USA, INC.") medwrse("HEWLETT-PACKARD COMPANY") medwrse("MOTOROLA, INC.") medwrse("QUALCOMM, INC.") medwrse("EBAY INC") medwrse("PAYPAL INC") }