# R FILE NUMBER 1 FOR "THE POLITICAL ENTROPY OF VOTE CHOICE", WINTER 2004
# THIS FILE CONTAINS THE DATA MANIPULATION AND TRANSFORMATION WORK
# THE NEXT FILE IS THE MODEL FILE: entropy.prior.s   

print("IMPORT THE DATAFILE AND FIX COLUMN NAMES")
e.data2 <- read.table("Article.Entropy/Entropy.Functions/entropy.anes.out")
dimnames(e.data2)[[2]] <- c("Apr.Clt","Apr.Clt.Scale","Inc.Spt.Clt.half",
	"Inc.Spt.Clt.alw", "Inc.Spt.Clt.nvr","Inc.Party","Supp.CB",
	"Fed.Spend.CR","Inc.Vote.CB","Guess.Inc.Vote.CB","Gvt.Help",
	"Dem.Gvt.Help","Rep.Gvt.Help","Gvt.Spend","Dem.Gvt.Spend",
	"Rep.Gvt.Spend", "Fed.Health","Dem.Fed.Health","Rep.Fed.Health",
	"Remember.Names","Vote","Party.Vote","Register.Vote", "Party.ID",
	"NV.Preference", "Ideology", "Dem.Ideology", "Dem.Certainty",
	"Rep.Ideology","Rep.Certainty", 
	"Age","Education",
	"Gender","Race","Pol.Interest","Read.P","Watch.N","Listen.N")

# OR:
#library(foreign)
# anes.1994 <- read.spss("Article.Entropy/Entropy.Functions/sp6507.export")
# V940201 V940201 V940202 V940647 V940645 V940646 V940433 V941040 V940825
# V940648 V940649 V940930 V940932 V940933 V940940 V940942 V940943 V940950
# V940952 V940953 V940210 V940613 V940614 V940606 V940655 V940626 V940839
# V940843 V940844 V940845 V940846 e.data[,"Age"] V941209 V941434 V941435
# V940124 V940125 V940126 V940127
	
print(" CLEAN UP AND RESCALE R'S CLINTON APPROVAL/DISAPPROVAL")
temp.vector <- NULL
for(i in 1:nrow(e.data2))  {
	if(e.data2[i,"Inc.Party"] == 2)  	
		temp.vector <- c(temp.vector,e.data2[i,"Inc.Vote.CB"])
}
temp.vector <- matrix(0,ncol=1,nrow=nrow(e.data2))
temp.vector[e.data2[,"Apr.Clt"] == 1] <- 2
temp.vector[e.data2[,"Apr.Clt"] == 5] <- 6
temp.vector[e.data2[,"Apr.Clt.Scale"] == 1] <- 1
temp.vector[e.data2[,"Apr.Clt.Scale"] == 2] <- 3
temp.vector[e.data2[,"Apr.Clt.Scale"] == 4] <- 5
temp.vector[e.data2[,"Apr.Clt.Scale"] == 5] <- 7
temp.vector[e.data2[,"Apr.Clt.Scale"] == 0] <- NA
temp.vector[e.data2[,"Apr.Clt.Scale"] == 8] <- 4
temp.vector[e.data2[,"Apr.Clt.Scale"] == 9] <- NA
e.data2[,1] <- temp.vector

print(" INCUMBENT PARTY & INCUMBENT SUPPORT FOR CLINTON TO SUPPORT CLINTON BY PARTY")
temp.vector[] <- 4
print(" DEMOCRATIC INCUMBENTS")
for(i in 1:nrow(e.data2))  {
	if(e.data2[i,"Inc.Party"] == 1)  {	
		# SUPPORT MORE THAN HALF THE TIME
		if(e.data2[i,"Inc.Spt.Clt.half"] == 1)  {
			if(e.data2[i,"Inc.Spt.Clt.alw"] == 1)
				temp.vector[i] <- 1
			if(e.data2[i,"Inc.Spt.Clt.alw"] == 5)
				temp.vector[i] <- 2
			if(e.data2[i,"Inc.Spt.Clt.alw"] == 8)
				temp.vector[i] <- 4
		}
		# SUPPORT HALF THE TIME
		if(e.data2[i,"Inc.Spt.Clt.half"] == 3)  
			temp.vector[i] <- 4
		# SUPPORT LESS THAN HALF THE TIME
		if(e.data2[i,"Inc.Spt.Clt.half"] == 5)  {
			if(e.data2[i,"Inc.Spt.Clt.nvr"] == 1)
				temp.vector[i] <- 7
			if(e.data2[i,"Inc.Spt.Clt.nvr"] == 5)
				temp.vector[i] <- 6
			if(e.data2[i,"Inc.Spt.Clt.nvr"] == 8)
				temp.vector[i] <- 4
		}
		if(e.data2[i,"Inc.Spt.Clt.half"] == 8)  
				temp.vector[i] <- 4
	}
}	
e.data2[,2] <- temp.vector
dimnames(e.data2)[[2]][2] <- "Dem.Supp.Clt"
print(" REPUBLICAN INCUMBENTS")
temp.vector[] <- 4
for(i in 1:nrow(e.data2))  {
        if(e.data2[i,"Inc.Party"] == 2)  {               
		# SUPPORT MORE THAN HALF THE TIME
		if(e.data2[i,"Inc.Spt.Clt.half"] == 1)  {
			if(e.data2[i,"Inc.Spt.Clt.alw"] == 1)
				temp.vector[i] <- 1
			if(e.data2[i,"Inc.Spt.Clt.alw"] == 5)
				temp.vector[i] <- 2
			if(e.data2[i,"Inc.Spt.Clt.alw"] == 8)
				temp.vector[i] <- 4
		}
		# SUPPORT HALF THE TIME
		if(e.data2[i,"Inc.Spt.Clt.half"] == 3)  
			temp.vector[i] <- 4
		# SUPPORT LESS THAN HALF THE TIME
		if(e.data2[i,"Inc.Spt.Clt.half"] == 5)  {
			if(e.data2[i,"Inc.Spt.Clt.nvr"] == 1)
				temp.vector[i] <- 7
			if(e.data2[i,"Inc.Spt.Clt.nvr"] == 5)
				temp.vector[i] <- 6
			if(e.data2[i,"Inc.Spt.Clt.nvr"] == 8)
				temp.vector[i] <- 4
		}
		if(e.data2[i,"Inc.Spt.Clt.half"] == 8)  
				temp.vector[i] <- 4
	}
}	
e.data2[,3] <- temp.vector
dimnames(e.data2)[[2]][3] <- "Rep.Supp.Clt"

print(" RESPONDENTS SUPPORT FOR INCREASED SPENDING ON CRIME AND THE CRIME BILL")
temp.vector[] <- 4
for(i in 1:nrow(e.data2))  {
	# RESPONDENT SUPPORTS CRIME BILL
	if(e.data2[i,"Supp.CB"] == 1)  {
		if(e.data2[i,"Fed.Spend.CR"] == 1)  temp.vector[i] <- 1
		if(e.data2[i,"Fed.Spend.CR"] == 2)  temp.vector[i] <- 2
		if(e.data2[i,"Fed.Spend.CR"] == 3)  temp.vector[i] <- 3
		if(e.data2[i,"Fed.Spend.CR"] == 8)  temp.vector[i] <- 3
	}
	# RESPONDENT OPPOSES CRIME BILL
	if(e.data2[i,"Supp.CB"] == 5)  {
		if(e.data2[i,"Fed.Spend.CR"] == 1)  temp.vector[i] <- 5
		if(e.data2[i,"Fed.Spend.CR"] == 2)  temp.vector[i] <- 6
		if(e.data2[i,"Fed.Spend.CR"] == 3)  temp.vector[i] <- 7
		if(e.data2[i,"Fed.Spend.CR"] == 8)  temp.vector[i] <- 5
	}
	if(e.data2[i,"Supp.CB"] == 8) temp.vector[i] <- 4 
}
e.data2[,"Supp.CB"] <- temp.vector
e.data2 <- e.data2[,-8]

print(" CLEAN UP AND TRANSFORM FROM INCUMBENT SUPPORT FOR CRIME BILL TO DEM/REP SUPPORT")
temp.vector[] <- 4
temp.vector2 <- temp.vector
temp.vector3 <- NULL
for(i in 1:nrow(e.data2))  {
	# INCUMBENT IS A DEMOCRAT
  	if(e.data2[i,"Inc.Party"] == 1)  {
	    if(e.data2[i,"Inc.Vote.CB"] ==1) temp.vector[i] <- 1
	    if(e.data2[i,"Inc.Vote.CB"] ==2) temp.vector[i] <- 2
	    if(e.data2[i,"Inc.Vote.CB"] ==4) temp.vector[i] <- 6
	    if(e.data2[i,"Inc.Vote.CB"] ==5) temp.vector[i] <- 7
	    if(e.data2[i,"Guess.Inc.Vote.CB"] ==1) temp.vector[i] <- 3
	    if(e.data2[i,"Guess.Inc.Vote.CB"] ==5) temp.vector[i] <- 5
	}
	# INCUMBENT IS A REPUBLICAN
	if(e.data2[i,"Inc.Party"] == 2)  {	
	    if(e.data2[i,"Inc.Vote.CB"] ==1) temp.vector2[i] <- 1
	    if(e.data2[i,"Inc.Vote.CB"] ==2) temp.vector2[i] <- 2
	    if(e.data2[i,"Inc.Vote.CB"] ==4) temp.vector2[i] <- 6
	    if(e.data2[i,"Inc.Vote.CB"] ==5) temp.vector2[i] <- 7
	    if(e.data2[i,"Guess.Inc.Vote.CB"] ==1) temp.vector2[i] <- 3
	    if(e.data2[i,"Guess.Inc.Vote.CB"] ==5) temp.vector2[i] <- 5
	}
}
e.data2[,8] <- temp.vector
dimnames(e.data2)[[2]][8] <- "Dem.Vote.CB"
e.data2[,9] <- temp.vector2
dimnames(e.data2)[[2]][9] <- "Rep.Vote.CB"

print(" CLEAN UP THREE SUPPORT FOR GOVERNMENT INVOLVEMENT IN JOB CREATION VARIABLES")
e.data2[,"Gvt.Help"][e.data2[,"Gvt.Help"]==8] <- 4
e.data2[,"Gvt.Help"][e.data2[,"Gvt.Help"]==0] <- NA
e.data2[,"Gvt.Help"][e.data2[,"Gvt.Help"]==9] <- NA
e.data2[,"Dem.Gvt.Help"][e.data2[,"Dem.Gvt.Help"]==8] <- 4
e.data2[,"Dem.Gvt.Help"][e.data2[,"Dem.Gvt.Help"]==0] <- NA
e.data2[,"Dem.Gvt.Help"][e.data2[,"Dem.Gvt.Help"]==9] <- NA
e.data2[,"Rep.Gvt.Help"][e.data2[,"Rep.Gvt.Help"]==8] <- 4
e.data2[,"Rep.Gvt.Help"][e.data2[,"Rep.Gvt.Help"]==0] <- NA
e.data2[,"Rep.Gvt.Help"][e.data2[,"Rep.Gvt.Help"]==9] <- NA

# FLIP THIS VARIABLE FOR CONSISTENCY
for(i in 1:nrow(e.data2))  {
	if(e.data2[i,"Gvt.Spend"]==1)  e.data2[i,"Gvt.Spend"] <- 7
	if(e.data2[i,"Dem.Gvt.Spend"]==1)  e.data2[i,"Dem.Gvt.Spend"] <- 7
	if(e.data2[i,"Rep.Gvt.Spend"]==1)  e.data2[i,"Rep.Gvt.Spend"] <- 7
	if(e.data2[i,"Gvt.Spend"]==2)  e.data2[i,"Gvt.Spend"] <- 6
	if(e.data2[i,"Dem.Gvt.Spend"]==2)  e.data2[i,"Dem.Gvt.Spend"] <- 6
	if(e.data2[i,"Rep.Gvt.Spend"]==2)  e.data2[i,"Rep.Gvt.Spend"] <- 6
	if(e.data2[i,"Gvt.Spend"]==3)  e.data2[i,"Gvt.Spend"] <- 5
	if(e.data2[i,"Dem.Gvt.Spend"]==3)  e.data2[i,"Dem.Gvt.Spend"] <- 5
	if(e.data2[i,"Rep.Gvt.Spend"]==3)  e.data2[i,"Rep.Gvt.Spend"] <- 5
}
print(" CLEAN UP THREE SUPPORT FOR GOVERNMENT SPENDING VARIABLES")
e.data2[,"Gvt.Spend"][e.data2[,"Gvt.Spend"]==8] <- 4
e.data2[,"Gvt.Spend"][e.data2[,"Gvt.Spend"]==0] <- NA
e.data2[,"Gvt.Spend"][e.data2[,"Gvt.Spend"]==9] <- NA
e.data2[,"Dem.Gvt.Spend"][e.data2[,"Dem.Gvt.Spend"]==8] <- 4
e.data2[,"Dem.Gvt.Spend"][e.data2[,"Dem.Gvt.Spend"]==0] <- NA
e.data2[,"Dem.Gvt.Spend"][e.data2[,"Dem.Gvt.Spend"]==9] <- NA
e.data2[,"Rep.Gvt.Spend"][e.data2[,"Rep.Gvt.Spend"]==8] <- 4
e.data2[,"Rep.Gvt.Spend"][e.data2[,"Rep.Gvt.Spend"]==0] <- NA
e.data2[,"Rep.Gvt.Spend"][e.data2[,"Rep.Gvt.Spend"]==9] <- NA

print(" CLEAN UP THREE FEDERAL HEALTHCARE VARIABLES")
e.data2[,"Fed.Health"][e.data2[,"Fed.Health"]==8] <- 4
e.data2[,"Fed.Health"][e.data2[,"Fed.Health"]==0] <- NA
e.data2[,"Fed.Health"][e.data2[,"Fed.Health"]==9] <- NA
e.data2[,"Dem.Fed.Health"][e.data2[,"Dem.Fed.Health"]==8] <- 4
e.data2[,"Dem.Fed.Health"][e.data2[,"Dem.Fed.Health"]==0] <- NA
e.data2[,"Dem.Fed.Health"][e.data2[,"Dem.Fed.Health"]==9] <- NA
e.data2[,"Rep.Fed.Health"][e.data2[,"Rep.Fed.Health"]==8] <- 4
e.data2[,"Rep.Fed.Health"][e.data2[,"Rep.Fed.Health"]==0] <- NA
e.data2[,"Rep.Fed.Health"][e.data2[,"Rep.Fed.Health"]==9] <- NA

print(" ADJUST HOUSE VOTE BY PARTY")
# for(i in 1:nrow(e.data2))  {
	# NON-VOTER'S PREFERENCES TURNED INTO VOTES (OPTIONAL)
# 	if(e.data2[i,"Party.Vote"]==0)  
# 		 e.data2[i,"Party.Vote"] <- e.data2[i,"NV.Preference"]
# }
e.data2[,"Party.Vote"][e.data2[,"Party.Vote"] >=3] <- NA
e.data2[,"Party.Vote"][e.data2[,"Party.Vote"] ==0] <- NA

print(" ADJUST PARTY ID VARIABLE")
e.data2[,"Party.ID"] <- e.data2[,"Party.ID"] + 1
e.data2[,"Party.ID"][e.data2[,"Party.ID"]==9] <- NA
e.data2[,"Party.ID"][e.data2[,"Party.ID"]==10] <- 4

print(" ADJUST RESPONDENT IDEOLOGY")
e.data2[,"Ideology"][e.data2[,"Ideology"]==8] <- 4
e.data2[,"Ideology"][e.data2[,"Ideology"]==0] <- NA
e.data2[,"Ideology"][e.data2[,"Ideology"]==9] <- NA
# DON'T KNOWS TURNED INTO 4s
e.data2[,"Dem.Ideology"][e.data2[,"Dem.Ideology"]==8] <- 4
e.data2[,"Dem.Ideology"][e.data2[,"Dem.Ideology"]==0] <- NA
e.data2[,"Dem.Ideology"][e.data2[,"Dem.Ideology"]==9] <- NA
# DON'T KNOWS TURNED INTO 4s
e.data2[,"Rep.Ideology"][e.data2[,"Rep.Ideology"]==8] <- 4
e.data2[,"Rep.Ideology"][e.data2[,"Rep.Ideology"]==0] <- NA
e.data2[,"Rep.Ideology"][e.data2[,"Rep.Ideology"]==9] <- NA

print(" RECODE EDUCATION")
e.data2[,"Education"][e.data2[,"Education"]>=8] <- 4
e.data2[,"Education"][e.data2[,"Education"]==0] <- NA

print(" RECODE GENDER")
e.data2[,"Gender"][e.data2[,"Gender"]==2] <- 0 

print(" RECODE RACE")
e.data2[,"Race"][e.data2[,"Race"]==1] <- 0
e.data2[,"Race"][e.data2[,"Race"]>=2] <- 1

print(" RECODE POLITICAL INTEREST")
e.data2[,"Pol.Interest"][e.data2[,"Pol.Interest"]==3] <- 2
e.data2[,"Pol.Interest"][e.data2[,"Pol.Interest"]==5] <- 3
e.data2[,"Pol.Interest"][e.data2[,"Pol.Interest"]==9] <- NA

print(" RECODE THE THREE MEDIA CONSUMPTION VARIABLES BY AVERAGING ACROSS FORMATS")
e.data2[,"Read.P"][e.data2[,"Read.P"]>=8] <- 3.5
e.data2[,"Watch.N"][e.data2[,"Watch.N"]>=8] <- 3.5
e.data2[,"Listen.N"][e.data2[,"Listen.N"]>=8] <- 3.5
e.data2[,"Read.P"] <- (e.data2[,"Read.P"]+e.data2[,"Watch.N"]+e.data2[,"Listen.N"])/3
dimnames(e.data2)[[2]][36] <- "Media.Exp"
e.data2 <- e.data2[,-37]
#e.data2 <- e.data2[,-38]

print(" RECODE UNCERTAINTY")
e.data2[,"Dem.Certainty"][e.data2[,"Dem.Certainty"]==8] <- NA
e.data2[,"Dem.Certainty"][e.data2[,"Dem.Certainty"]==9] <- NA
e.data2[,"Rep.Certainty"][e.data2[,"Rep.Certainty"]==8] <- NA
e.data2[,"Rep.Certainty"][e.data2[,"Rep.Certainty"]==9] <- NA

print("DOING MULTIPLE IMPUTATION WITH THE mice PACKAGE")
e.data3 <- cbind(e.data2[,"Apr.Clt"],       e.data2[,"Dem.Supp.Clt"],  e.data2[,"Rep.Supp.Clt"],  
		 e.data2[,"Supp.CB"],       e.data2[,"Dem.Vote.CB"],   e.data2[,"Rep.Vote.CB"],   
		 e.data2[,"Gvt.Help"],      e.data2[,"Dem.Gvt.Help"],  e.data2[,"Rep.Gvt.Help"],  
	         e.data2[,"Gvt.Spend"],     e.data2[,"Dem.Gvt.Spend"], e.data2[,"Rep.Gvt.Spend"],
		 e.data2[,"Fed.Health"],    e.data2[,"Dem.Fed.Health"],e.data2[,"Rep.Fed.Health"],
	         e.data2[,"Ideology"],      e.data2[,"Dem.Ideology"],  e.data2[,"Rep.Ideology"],
	 	 e.data2[,"Dem.Certainty"], e.data2[,"Rep.Certainty"], e.data2[,"Party.ID"],
		 e.data2[,"Age"],           e.data2[,"Education"],     e.data2[,"Gender"],        
		 e.data2[,"Race"],          e.data2[,"Pol.Interest"],  e.data2[,"Read.P"],        
		 e.data2[,"Media.Exp"],     e.data2[,"Party.Vote"]     )

e.data2.mice <- mice(e.data3)
e.data2.complete1 <- complete(e.data2.mice,1)
e.data2.complete2 <- complete(e.data2.mice,2)
e.data2.complete3 <- complete(e.data2.mice,3)
e.data2.complete4 <- complete(e.data2.mice,4)
e.data2.complete5 <- complete(e.data2.mice,5)

# REPEAT THE FOLLOWING FOR EACH OF THE 5 IMPUTATIONS AND RUN THE NEXT 2 FILES ON EACH
e.data2 <- e.data2.complete1
names(e.data2) <- c( "Apr.Clt","Dem.Supp.Clt","Rep.Supp.Clt","Supp.CB","Dem.Vote.CB","Rep.Vote.CB",
                 "Gvt.Help","Dem.Gvt.Help","Rep.Gvt.Help", "Gvt.Spend","Dem.Gvt.Spend","Rep.Gvt.Spend",
                 "Fed.Health","Dem.Fed.Health","Rep.Fed.Health","Ideology","Dem.Ideology","Rep.Ideology",
                 "Dem.Certainty","Rep.Certainty","Party.ID","Age","Education","Gender","Race",
		 "Pol.Interest","Read.P","Media.Exp","Party.Vote" )


print("REMOVE CASES WHERE THE HOUSE RACE DOES NOT APPLY (LEFT IN FOR MI)")
# library(foreign)
# anes.1994 <- read.spss("Article.Entropy/Entropy.Functions/sp6507.export")
# table(anes.1994$V940017) #table(as.numeric(anes.1994$V940017))
accept.vector <- as.numeric(anes.1994$V940017)
e.data3 <- NULL
for (i in 1:nrow(e.data2))  {
	if ( (accept.vector[i] == 6) || (accept.vector[i] == 8) ) 
		e.data3 <- rbind(e.data3,e.data2[i,])
}
e.data2 <- e.data3


